[JS] JavaScript 한 장의 그림 에 대한 깊 은 생각

3537 단어 전단JavaScript
옛날 에 금 을 파 는 비등점 에서 그림 한 장 을 보고 재 미 있 게 친구 들 에 게 보 냈 다.결국 많은 친구 들 이 왜 냐 고 물 었 습 니 다.(그래, 사실 나 는 이번 주 에 무슨 내용 을 썼 는 지 몰 랐 을 뿐 이 야.)이 그림 을 둘러싸 고 자 바스 크 립 트 의 기본 데이터 형식 과 인용 데이터 형식, 창고 메모리 와 더미 메모리, = = 과 = = 의 차 이 를 제거 합 니 다.
왜!var avar 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 avar 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 로 돌아 갑 니 다.
저 는 보리 입 니 다. 좋아 하 는 글 이 라면 조심 하 세 요.

좋은 웹페이지 즐겨찾기