>  기사  >  웹 프론트엔드  >  Javascript_javascript 기술의 null, NaN 및 정의되지 않음 간의 차이점 요약

Javascript_javascript 기술의 null, NaN 및 정의되지 않음 간의 차이점 요약

WBOY
WBOY원래의
2016-05-16 17:37:461079검색

1. 유형 분석 :
js의 데이터 유형에는 undefine, boolean, number, string, object 등이 있습니다. 처음 4개 유형은 기본 유형이고 다섯 번째 유형은 참조 유형입니다. .
코드

코드 복사 코드는 다음과 같습니다.

var a1; >var a2 = true;
var a3 = 1;
var a4 = "안녕하세요";
var a5 = new Object()
var a6 = null; ;
var a8 = 정의되지 않음;
alert(typeof a); //"정의되지 않음" 표시
alert(typeof a1); //"정의되지 않음" 표시
alert(typeof a2); "부울" 표시 "
alert(typeof a3); //"숫자" 표시
alert(typeof a4); //"문자열" 표시
alert(typeof a5); //"객체" 표시
alert(typeof a6); //"객체" 표시
alert(typeof a7); //"숫자" 표시
alert(typeof a8); //"정의되지 않음" 표시


위 코드를 보면 정의되지 않은 값과 할당되지 않은 값은 정의되지 않은 값이고, null은 특수 객체, NaN은 특수 숫자임을 알 수 있습니다.

2. 비교 연산

var a1; //a1의 값이 정의되지 않았습니다.
var a2 = null;
alert(a1 == a2); >alert(a1 != a2); //"false" 표시
alert(a1 == a3); //"false" 표시
alert(a1 != a3); 🎜>alert( a2 == a3); // "false" 표시
alert(a2 != a3); // "true" 표시
alert(a3 == a3);
alert (a3 != a3); //"true" 표시


위 코드에서 결론을 내릴 수 있습니다. (1) 정의되지 않음과 null은 동일합니다. 어떤 값과도 같지 않고 자신과도 같지 않습니다.


JavaScript 정의되지 않은 속성



정의 및 사용법
정의되지 않은 속성은 JavaScript의 정의되지 않은 값을 저장하는 데 사용됩니다.
구문
undefine

설명
for/in 루프를 사용하여 정의되지 않은 속성을 열거할 수 없으며 delete를 사용할 수 없습니다. 이를 삭제하는 작업 문자입니다.
정의되지 않음은 상수가 아니며 다른 값으로 설정할 수 있습니다.
존재하지 않는 개체 속성을 읽으려고 시도하는 경우에도 정의되지 않음이 반환됩니다. 팁 및 참고 사항< 값은 정의되지 않음과 동일합니다. ="=" ="==">
< while>
코드 복사


코드는 다음과 같습니다.


출력: 정의되지 않은 데이터 유형
다음과 같은 경우 정의되지 않은 값이 반환됩니다.
객체 속성이 존재하지 않는 경우,
변수가 선언되었지만 값이 할당되지 않은 경우.

변수 유형이 "정의되지 않음"인지 확인할 수는 있지만 정의되지 않음과 비교하여 변수가 존재하는지 여부를 테스트할 수는 없습니다. 다음 코드 예제에서는 프로그래머가 변수

// 이 메서드가 작동하지 않는지 테스트하려고 한다고 가정합니다.
if (x == undefine)
// 작업 수행
/ / 이 방법도 작동하지 않습니다 - 확인해야 합니다
// 문자열 "undefine"
if (typeof(x) == undefine)
// 일부 작업 수행
// 이 방법은 유효합니다
if (typeof(x) == "undefine ")
// 특정 작업 수행


정의되지 않은 값을 null과 비교하는 것을 고려해 보세요.
someObject.prop == null;
someObject.prop 속성에 null 값이 포함된 경우
someObject.prop 속성이 존재하지 않는 경우
비교 결과는 true입니다.
객체 속성이 존재하는지 확인하려면 new in 연산자를 사용할 수 있습니다.
if ("prop" in someObject)
// someObject has attribute 'prop'
JavaScript에서 null은 정의되지 않은 것과 같은 것은 한때 혼란스러웠습니다. 다음 분석은 이를 더 명확하게 이해하는 데 도움이 됩니다(또는 더 혼란스럽게 만듭니다).
- null은 키워드입니다. 정의되지 않음은 전역 개체의 속성입니다.
- null은 개체(속성이 없는 빈 개체)입니다. 및 메소드) 정의되지 않음은 정의되지 않은 유형의 값입니다. 다음 코드를 시도해 보세요.
document.writeln(typeof null); //return object
document.writeln(typeof undefine); //return undefine
- 객체 모델에서 모든 객체는 Object 또는 null 개체를 제외한 해당 하위 클래스의 인스턴스:
document.writeln(null instanceof Object); //return false
- null은 정의되지 않은 것과 "같음(==)"이지만 "합치"는 아닙니다(== =)" 정의되지 않음:
document.writeln(null == undefine); //true를 반환
document.writeln(null === undefine); //false를 반환
- 작업 중 null 및 둘 다 undefed는 false로 유형 변환될 수 있지만 false와 동일하지 않습니다.
document.writeln(!null, !undefine) //return true,true
document.writeln(null==false) // return false
document.writeln(undefine==false); //false 반환
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.