>  기사  >  웹 프론트엔드  >  JavaScript에서 정의되지 않음과 null에 대한 이해에 대한 자세한 설명

JavaScript에서 정의되지 않음과 null에 대한 이해에 대한 자세한 설명

亚连
亚连원래의
2018-05-19 16:37:171809검색

이제 JavaScript 유형 시스템(정의되지 않음 및 null)에 대한 포괄적인 이해를 제공하겠습니다. 이제 그것을 여러분과 공유하고 모든 사람에게 참고 자료로 제공하겠습니다.

앞서 말씀드리자면

일반 프로그래밍 언어는 null만 표현하는데, JavaScript 디자이너인 Brendan Eich는 undefine을 설계했는데, 이는 의심할 바 없이 프로그램의 복잡성을 증가시킵니다. 하지만 여기에는 확실한 이유가 있습니다. . 이 글에서는 JavaScript의 undefound와 null을 자세히 소개하겠습니다

역사적 이유: 1995년 JavaScript가 탄생했을 때, 처음에는 Java와 마찬가지로 "none"을 나타내는 값으로 null만 설정되었습니다. C 언어의 전통에 따르면 null은 자동으로 0으로 변환되도록 설계되었습니다. 그러나 JavaScript 디자이너 Brendan Eich는 두 가지 이유로 이것이 충분하지 않다고 생각합니다. 첫째, null은 Java와 마찬가지로 객체로 처리됩니다. 그러나 JavaScript 값은 기본 유형과 객체 유형이라는 두 가지 범주로 나뉩니다. Brendan Eich는 "none"을 나타내는 값이 객체가 아닌 것이 가장 좋다고 생각합니다. 둘째, JavaScript의 초기 버전에는 오류 처리 메커니즘이 포함되어 있지 않았습니다. 데이터 유형 불일치가 발생하면 유형이 자동으로 변환되거나 자동으로 실패하는 경우가 많습니다. Brendan Eich는 null이 자동으로 0으로 변환되면 오류를 찾기 어려울 것이라고 생각했습니다. 따라서 Brendan Eich는 또 다른 undefine을 설계했습니다. 그는 다음과 같이 구별합니다. null은 "없음"을 나타내는 개체이고 숫자 값으로 변환되면 0입니다. undefound는 "없음"을 나타내는 기본 값이며 숫자 값으로 변환되면 NaN입니다. undefed는 기본적으로 동의어이며 모두 기본 유형이며 약간의 차이점만 있습니다.

unundeUndefed 유형에는 undefined 값이 하나만 있습니다. 선언된 변수가 초기화되지 않으면 변수의 기본값은 정의되지 않습니다. 따라서 일반적으로 정의되지 않음은 변수가 초기화되지 않았음을 의미합니다.

var test;//undefined
console.log(test == undefined);//true
var test = undefined;//undefined

아직 선언되지 않은 변수에 대해 하나의 작업만 수행할 수 있습니다.

typeof 연산자를 사용하여 해당 데이터 유형을 감지할 수 있지만 엄격 모드에서는 오류가 발생합니다. error

typeof(test);//undefined

【시나리오 등장】

   【1】미할당 변수 선언

                                   2019-01-21 이후 【5】void(expression)

var i;
console.log(i);//undefined
var o = {};
console.log(o.p);//undefined
function f(){};
console.log(f());//undefined
function f(x){return x;}
console.log(f());//undefined
console.log(void(0));//undefined

【형변환】

Boolean(undefined):  false
Number(undefined):  NaN
String(undefined):  'undefined'

null

Null 유형에는 null 값이 하나만 있습니다. null은 JavaScript 언어의 키워드로 특수 값을 나타내며 "널 값"을 설명하는 데 자주 사용됩니다.

논리적 관점에서 null 값은 널 개체 포인터를 나타냅니다.[참고] null은 널 개체 포인터입니다. , 그리고 []는 빈 배열이고, {}는 빈 객체이고, 세 개는 다릅니다

console.log(typeof null);//'object'
null과 undefine은 다르지만 둘 다 "값의 공백"을 나타내고, null은 "빈 값"을 나타내고, undefin은 "정의되지 않음"을 나타냅니다. ". 이 둘은 종종 서로 바꿔 사용할 수 있습니다. 항등 연산자 ==는 두 값이 동일하다고 간주합니다.

console.log(null == undefined);//true

실제로 undefine과 null은 생성자 유형이 아니기 때문에 이 두 값의 멤버에 액세스하려면 와 []를 사용하세요. 메소드는 유형 오류를 생성합니다

[유형 변환]

Boolean(null):   false
Number(null):   0
String(null):    'null'

위는 제가 모든 사람을 위해 편집한 내용입니다. 앞으로 모든 사람에게 도움이 되기를 바랍니다.

관련 기사:

JavaScript 함수 표현식(그래픽 튜토리얼)

Javascript 상속 메커니즘(자세한 답변, 그래픽 튜토리얼)

Javascript로 클래스 및 객체 생성(그래픽 튜토리얼)

위 내용은 JavaScript에서 정의되지 않음과 null에 대한 이해에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.