Javascript Shorts: null 및 정의되지 않음
null 이 무엇입니까?
primitive value that represents the intentional absence of any object value. - ECMA - 262
let a = null;
console.log(a) // null
console.log(typeof null) // object
console.log(!!a) // false
정의되지 않은 것은 무엇입니까?
primitive when a variable has not been assigned any value. - ECMA - 262
undefined는 변수를 선언하지만 값을 할당하지 않는 곳입니다.
let a;
console.log(a) // undefined
console.log(typeof a) // "undefined"
typeof null이 객체인 이유는 무엇입니까?
typeof undefined를 기록할 때
undefined
를 얻고 typeof null을 기록할 때 object
를 얻는 이유를 이해해 봅시다. null
는 기본 유형이 Null
인 기본 값이므로 유형이 Null
가 아닌 이유는 무엇입니까?Typeof 연산자는 변수의 유형을 문자열 형식으로 반환합니다.
typeof null === 'object';
이전 자바스크립트 구현에서는 값이 32비트 단위로 저장됩니다. 처음 세 비트(1 - 3)는 값의 유형을 식별하기 위한 비트이고 나머지 29비트는 실제 값을 포함합니다.
객체의 유형 태그가
000
인 5개의 유형 태그가 있습니다. 대부분의 플랫폼에서 null은 (0x00) 포인터NULL
로 표시되었습니다. 이것은 null
가 0
의 유형인 "object”
유형 태그를 가지고 있음을 느슨하게 번역합니다.typeof null에 대한 코드에 대한 추가 정보: reference
MDN 참조
In the first implementation of JavaScript, JavaScript values were represented as a type tag and a value. The type tag for objects was
0
.null
was represented as the NULL pointer (0x00
in most platforms). Consequently,null
had0
as type tag, hence thetypeof
return value"object"
. (reference)A fix was proposed for ECMAScript (via an opt-in), but was rejected. It would have resulted in
typeof null === 'null'
.
null 및 undefined에 대한 흥미로운 사실:
둘 다 동등하고 동등하지 않습니다. 그게 무슨 뜻이야?
console.log(null === undefined) // false
자바스크립트의 엄격한 동등 연산자를 사용하여 확인하면 null과 undefined의 유형이 다르기 때문에 false가 됩니다.
console.log(null == undefined) // true
언어spec에서는 느슨한 등식 연산자를 사용하여 null과 undefined 사이의 유사성을 확인할 때 이것이 참이어야 한다고 말합니다.
null과 숫자를 추가하려고 하면 어떻게 됩니까? null은 0으로 변환되어 숫자가 됩니다.
console.log(1+null) // 1
정의되지 않은 숫자를 추가하려고 하면
NaN.
가 표시됩니다.console.log( 1 + undefined ) // NaN
결론
그게 다야. 시간을 내어 블로그 게시물을 읽어주셔서 감사합니다. 게시물이 유용했다면 ❤️를 추가하고 내가 놓친 부분이 있으면 댓글 섹션에 알려주세요.
블로그 피드백은 환영합니다.
소셜 링크:
Showwcase
참조 및 리소스:
Reference
이 문제에 관하여(Javascript Shorts: null 및 정의되지 않음), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/imkarthikeyan/javascript-shorts-null-and-undefined-32c6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)