[JS] JavaScript 한 장의 그림 에 대한 깊 은 생각
3537 단어 전단JavaScript
왜!
var a
와 var b
는 인용 형식 이기 때문에 스 택 메모리 에 주소 지침 을 저장 하고 메모리 에 값 을 저장 합 니 다.var c
는 JavaScript 의 기본 데이터 형식 인 String 형식 이기 때문에 스 택 에 직접 값 을 저장 합 니 다.var a=[1,2,3];
console.log(a.toString()); //"1,2,3"
a.toString()==c; //true
a==c;
일 때 = = 을 비교 할 때 두 개의 비교 값 을 같은 유형 으로 바 꾸 어 비교 하기 때문에 비교 할 때 사실은 var a
toString () 의 방법 으로 호출 되 는데 그 결 과 는 다음 과 같다. "1,2,3"
그리고 var a
를 다시 var c
와 비교한다.결국 돌아 오 는 건 트 루 지.b==c
때 같이 탔 어 요.a==b
일 때 var a
와 var b
는 모두 인용 형식 이기 때문에 이들 = = 비교 할 때 스 택 메모리 의 주소 가 같 는 지 비교 합 니 다.각자 의 주소 가 다 르 기 때문에 결 과 는 당연히 false 로 돌아간다.지식 포인트 보충 팩
우 리 는 왜 그림 속 의 결 과 를 나 타 냈 는 지 대충 알 았 다.그러나 어떤 동 화 는 관련 지식 이 없어 서 보기 힘 들 수도 있다.그래서 우 리 는 이 그림 에 포 함 된 지식 점 을 보충 해 보 자.
5 가지 기본 데이터 형식 과 참조 데이터 형식
창고 메모리 와 더미 메모리
JavaScript 의 5 가지 기본 데이터 형식 은 다음 과 같 습 니 다.
1、String
2、Number
3、Boolean
4、Undefined
5、Null
기본 데이터 형식 은 저장 공간 에 고정된 크기 가 있 기 때문에 스 택 메모리 에 직접 저장 합 니 다.기본 형식 은 현재 실행 환경 이 끝 날 때 삭 제 됩 니 다.
상기 기본 데이터 형식 을 제외 하고 모두 데이터 형식 을 참조 합 니 다. 예 를 들 어 배열 Array, Object 형식, Function 형식 입 니 다.인용 형식 은 실행 환경 이 끝나 면 소각 되 지 않 으 며, 모든 인용 변수 가 존재 하지 않 을 때 만 이 대상 은 쓰레기 회수 메커니즘 에 의 해 회수 된다.
var a;
var b;
function fun(){
var c=[1,2,3];
var d="hello"; //
a=c; // c , a
b=d; // d b
}
fun();
a; //Array(3) [ 1, 2, 3 ], a c , c
b; //"hello", b d , b String , ,b "hello" , d , 。
이상 에서 우 리 는 자 바스 크 립 트 의 기본 데이터 형식 과 인용 데이터 형식의 차이, 그리고 창고 메모리 와 더미 메모리 와 의 관 계 를 분명히 말 했다.
반복:
1. 기본 데이터 형식 은 스 택 메모리 에 직접 값 을 저장 합 니 다.
2. 기본 유형 은 현재 실행 환경 이 끝 날 때 폐기 합 니 다.
3. 데이터 형식 을 참조 하여 스 택 메모리 에 주 소 를 저장 하고 값 을 메모리 에 저장 합 니 다.
4. 인용 유형 은 실행 환경 이 끝나 면 소각 되 지 않 고 모든 인용 변수 가 존재 하지 않 을 때 만 이 대상 은 쓰레기 회수 체제 에 의 해 회수 된다.
= = 와 = = 의 차이
"= =": (값) 과 같다 는 뜻 입 니 다. 두 값 의 유형 이 다 르 면 강제 변환 형식 을 통 해 같은 유형 으로 전환 한 후 변 환 된 값 이 같 는 지 비교 합 니 다.같은 반환 true, 다른 반환 false.
"= = =": (값 과 유형) 과 같 음 을 나타 낸다.
두 비교 유형 이 다 르 면 false 로 돌아 갑 니 다.
두 개의 비교 값 유형 이 같 지만 값 이 다 르 면 false 로 돌아 갑 니 다.
두 개의 비교 값 유형 이 같 고 값 도 같 으 면 true 로 돌아 갑 니 다.
저 는 보리 입 니 다. 좋아 하 는 글 이 라면 조심 하 세 요.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
전단 자동화 워 크 플 로 의 hooks예 를 들 어 우 리 는 git commt 전에 eslint 코드 검사, npm install 전에 프로젝트 의존 도 를 검사 하고 싶 습 니 다.전형 적 인 상황 에서 각종 도 구 는 특정한 동작 이 발생 할 때 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.