그것이 있다면 어떻게 변수를 확인합니까
null
또는undefined
과의 차이 무엇null
하고undefined
?무엇 차이점은 무엇
==
과===
(그것은 "==="에 대한 구글 검색 어렵다)?
그것이 있다면 어떻게 변수를 확인합니까 null
또는 undefined
과의 차이 무엇 null
하고 undefined
?
무엇 차이점은 무엇 ==
과 ===
(그것은 "==="에 대한 구글 검색 어렵다)?
답변:
그것이 있다면 어떻게 변수를 확인합니까
null
나undefined
...
변수입니다 null
:
if (a === null)
// or
if (a == null) // but see note below
...하지만 경우에도 마찬가지 일 것이다 후자를주의 a
입니다 undefined
.
그것은 undefined
:
if (typeof a === "undefined")
// or
if (a === undefined)
// or
if (a == undefined) // but see note below
... 다시 말하지만 마지막 것은 모호합니다. a
is 인 경우에도 마찬가지 입니다 null
.
위의 내용에도 불구하고, 그것들을 확인 하는 일반적인 방법은 그들이 거짓 이라는 사실을 사용하는 것입니다 .
if (!a) {
// `a` is falsey, which includes `undefined` and `null`
// (and `""`, and `0`, and `NaN`, and [of course] `false`)
}
이것은 스펙에서 ToBoolean 에 의해 정의됩니다 .
... 그리고 사이의 차이 무엇
null
과undefined
?
둘 다 일반적으로 무언가가 없음을 나타내는 데 사용됩니다. undefined
함수가 호출 될 때 제공되지 않은 함수 인수의 값과 객체를 요청할 때 얻는 값으로 다른 값이 할당 될 때까지 변수의 기본값으로 사용되는보다 일반적인 것입니다. 속성이 없습니다. 그러나 이러한 모든 상황에서 명시 적으로 사용될 수도 있습니다. (속성이없는 객체와 값이있는 객체를 갖는 객체 undefined
에는 차이가 undefined
있습니다. 인수 값 을 가진 함수를 호출하는 것과 그 인수를 완전히 끄는 것 사이에는 차이가 있습니다.)
null
다음보다 약간 더 구체적 undefined
입니다. 빈 개체 참조입니다. 물론 JavaScript는 느슨하게 입력되었지만 JavaScript와 상호 작용하는 모든 항목이 느슨하게 입력 된 것은 아닙니다. 브라우저의 DOM과 같은 API가 비어있는 객체 참조가 필요한 경우 null
, not 을 사용 undefined
합니다. 마찬가지로 DOM의 getElementById
작업은 유효한 객체 (DOM 요소를 찾은 경우) 또는 null
그렇지 않은 경우 개체 참조를 반환합니다 .
흥미롭게도 (아니든), 그들은 그들 자신의 유형입니다. 즉, null
Null 유형 undefined
의 유일한 값이고 정의되지 않은 유형의 유일한 값입니다.
"=="와 "==="의 차이점은 무엇입니까
그들 사이의 유일한 차이점 ==
은 값을 일치시키기 위해 강제 변환을 수행 한다는 것 ===
입니다. 예를 들어을 강제하기 "1" == 1
때문에 사실 입니다. 그러나 입니다 거짓 유형이 일치하지 않기 때문에. ( 사실이다.)의 첫 번째 (실제) 단계 이다 "피연산자의 유형은 동일합니까?" 대답이 "아니오"이면 결과는 입니다. 유형이 동일하면 정확하게 작동합니다."1"
1
"1" === 1
"1" !== 1
===
false
==
유형 강제는 매우 복잡한 규칙을 사용하며 놀라운 결과를 낳을 수 있습니다 (예 "" == 0
: 참).
사양에서 더 많은 것 :
if (a) { ... }
" a
진실한 경우"를 의미합니다. 여기서 "truthy"는 0이 아닌, null이 아닌, 정의되지 않은, false가 아닌, 비어 있지 않은 문자열 값입니다. :-)
null
가 아니라는 것은 사실입니다 . "객체 없음"을 의미하는 객체 참조입니다. 그것은 (예를 들면, 그들은 객체 참조를 제공 할 때 호스트가 제공하는 인터페이스와 함께 사용되는하지만 제공이없는 무엇 때문에, 중요 할 때 부모의 마지막 요소, 또는 해당 ID와 어떤 요소가 없을 때). 호스트가이를 위해 사용하는 기술은 JavaScript가 변수 / 속성 유형에 대한 것만 큼 유연하지 않을 수 있으므로 obj ref (와 반대 ) 가 필요했습니다 . node.nextSibling
node
getElementById
null
undefined
typeof null
"객체"를 반환하는 것이 의미가 있습니다. 의미가있는 유일한 다른 값은 "null"입니다. 왜냐하면 반드시와 다른 것을 반환해야하기 때문입니다 typeof undefined
. null은 null 객체 참조를 나타내며, 최소한이를 보유하는 변수는 'object'유형에 해당됩니다. 실수라면 좋은 실수였습니다. 어쨌든 대답과 관련하여 크로스 창 스크립팅 중 undefined
! == 에 대한 팁은 undefined
특히 디버깅 목적으로 알고 있어야합니다.
차이점은 미묘합니다.
JavaScript에서 undefined
변수는 선언되지 않았거나 값이 할당되지 않은 변수입니다. 하자 당신이 선언 말한다 var a;
예를 들어, 다음 a
될 것입니다undefined
이 값을 지정하지 않았기 때문에.
당신이 다음에 할당하지만 a = null;
다음 a
지금 할 것이다 null
. JavaScript null
에서 객체는 ( typeof null
당신이 믿지 않으면 JavaScript 콘솔에서 시도 하십시오), 이는 null이 값이라는 것을 의미합니다 (사실undefined
.
예:
var a;
typeof a; # => "undefined"
a = null;
typeof null; # => "object"
이것은 함수 인수에 유용 할 수 있습니다. 기본값을 원할 수도 있지만 null을 허용 가능한 것으로 간주하십시오. 어떤 경우에는 다음을 수행 할 수 있습니다.
function doSomething(first, second, optional) {
if (typeof optional === "undefined") {
optional = "three";
}
// do something
}
선택적 optional
매개 변수 를 생략하면 문자열이되지만 전달 하면 선택적이됩니다.doSomething(1, 2) then
"three"
doSomething(1, 2, null)
null
.
동일 ==
하고 엄격하게 동일한 ===
비교기의 경우 첫 번째는 약한 유형이며 엄격하게 동일한 값은 유형도 검사합니다. 그것은 그것이 0 == "0"
참 이 될 것이라는 것을 의미 합니다. 동안0 === "0"
숫자가 문자열이 아니기 때문에, false를 돌려줍니다.
당신은 사이를 점검하기 위해 이러한 연산자를 사용할 수 있습니다 . 예를 들면 다음과 같습니다.undefined
null
null === null # => true
undefined === undefined # => true
undefined === null # => false
undefined == null # => true
마지막 경우는 변수가 정의되지 않았거나 null인지 여부를 확인할 수 있기 때문에 흥미 롭습니다.
function test(val) {
return val == null;
}
test(null); # => true
test(undefined); # => true
스펙 은 이러한 질문에 대한 완전한 답변을 얻을 수있는 곳입니다. 요약은 다음과 같습니다.
x
경우 다음을 수행 할 수 있습니다.null
사용하여 직접 비교하여 확인하십시오 ===
. 예:x === null
undefined
직접 비교 undefined
또는 와의 두 가지 기본 방법 중 하나 인지 확인하십시오 typeof
. 들어 여러 가지 이유로 , 나는 좋아한다 typeof x === "undefined"
.null
하고 undefined
사용하여 ==
및 평균이하는 약간 난해한 유형 강제 변환 규칙에 의존 x == null
정확하게 당신이 원하는 않습니다.==
와 ===
피연산자의 유형이 다른 경우 기본적인 차이점 은 피연산자가 ===
항상 반환 false
되는 동안 약간 직관적이지 않은 동작을 유발 ==
하는 규칙 을 사용하여 하나 또는 두 피연산자를 동일한 유형으로 변환 한다는 것입니다. 피연산자는 동일한 유형 인 경우 (모두 예와 같이 문자열이다 예 typeof
상기 비교) ==
와 ===
정확히 동일하게 작동한다.더 많은 독서 :
찾으시는 주소가 없습니다
변수가 아직 초기화되지 않았 음을 의미합니다.
예 :
var x;
if(x){ //you can check like this
//code.
}
같음 (==)
점검 값만 datatype이 아닌지 확인하십시오.
예 :
var x = true;
var y = new Boolean(true);
x == y ; //returns true
value 만 검사하기 때문입니다.
엄격한 같음 (===)
값과 데이터 유형이 동일한 지 확인합니다.
예 :
var x = true;
var y = new Boolean(true);
x===y; //returns false.
데이터 유형을 검사하기 때문에 x는 기본 유형이고 y는 부울 객체입니다.
다른 논리로 시도하십시오 . 자바 스크립트와 jquery에서 null이 아니고, 비어 있지 않고, 정의되지 않았으며 0이 아닌이 코드 (! (! (variable))) 만 사용하는 것과 같이 유효성 검사를 위해 four (4) 조건을 모두 확인하기 위해 다음 코드를 사용할 수 있습니다.
function myFunction() {
var data; //The Values can be like as null, blank, undefined, zero you can test
if(!(!(data)))
{
//If data has valid value
alert("data "+data);
}
else
{
//If data has null, blank, undefined, zero etc.
alert("data is "+data);
}
}
==
와는===
잘 여기서 설명 .