이 기사에서는 정의되지 않음과 null의 차이점에 대해 설명합니다. 정의되지 않음과 null의 차이점을 모르거나 정의되지 않음과 null의 차이점에 관심이 있다면 이 기사를 살펴보겠습니다. 요점을 말하자면
대부분의 컴퓨터 언어에는 C 언어의 NULL, Java 언어의 null, Python 언어의 None, Ruby 언어의 nil과 같이 "없음"을 나타내는 값이 하나만 있습니다.
좀 이상하게도 JavaScript 언어에는 실제로 "none"을 나타내는 두 가지 값, 즉 정의되지 않음과 null이 있습니다. 왜 그래?
1. 유사성
JavaScript에서는 변수를 정의되지 않거나 null로 할당하는 것은 솔직히 거의 차이가 없습니다.
var a = undefined; var a = null;
위 코드에서 a 변수는 각각 undefine과 null에 할당되어 있으며 두 가지 작성 방법은 거의 동일합니다.
undefine과 null은 if 문에서 자동으로 false로 변환되며, 동등 연산자는 둘이 동일하다고 직접 보고하기도 합니다.
if (!undefined) console.log('undefined is false'); // undefined is false if (!null) console.log('null is false'); // null is false undefined == null // true
2. 역사적 이유
Number(null) // 0 5 + null // 5
데이터 유형은 기본 유형(기본)과 복합 유형(복합)의 두 가지 범주로 나뉩니다. Brendan Eich는 "없음"을 나타내는 값이 객체가 아닌 것이 가장 좋다고 생각합니다.
두 번째로, JavaScript의 초기 버전에는 그래서 Brendan Eich는 또 다른 undefound를 디자인했습니다.3. 초기 디자인
Number(undefined) // NaN 5 + undefined // NaN
4. 현재 사용법
함수의 매개변수 로, 함수의 매개변수가 객체가 아님을 나타냅니다.
(2)는 객체 프로토타입 체인의 끝점 역할을 합니다.Object.getPrototypeOf(Object.prototype)// null
var i; i // undefined function f(x){console.log(x)} f() // undefined var o = new Object(); o.p // undefined var x = f(); x // undefined
관련 권장 사항:
Javascript 이해_02_undefine 및 null_javascript 기술 이해
위 내용은 정의되지 않음과 null의 차이점에 대해 자세히 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!