그것이 있다면 어떻게 변수를 확인합니까
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
... 다시 말하지만 마지막 것은 모호합니다. ais 인 경우에도 마찬가지 입니다 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그렇지 않은 경우 개체 참조를 반환합니다 .
흥미롭게도 (아니든), 그들은 그들 자신의 유형입니다. 즉, nullNull 유형 undefined의 유일한 값이고 정의되지 않은 유형의 유일한 값입니다.
"=="와 "==="의 차이점은 무엇입니까
그들 사이의 유일한 차이점 ==은 값을 일치시키기 위해 강제 변환을 수행 한다는 것 ===입니다. 예를 들어을 강제하기 "1" == 1때문에 사실 입니다. 그러나 입니다 거짓 유형이 일치하지 않기 때문에. ( 사실이다.)의 첫 번째 (실제) 단계 이다 "피연산자의 유형은 동일합니까?" 대답이 "아니오"이면 결과는 입니다. 유형이 동일하면 정확하게 작동합니다."1"1"1" === 1"1" !== 1===false==
유형 강제는 매우 복잡한 규칙을 사용하며 놀라운 결과를 낳을 수 있습니다 (예 "" == 0: 참).
사양에서 더 많은 것 :
if (a) { ... }" a진실한 경우"를 의미합니다. 여기서 "truthy"는 0이 아닌, null이 아닌, 정의되지 않은, false가 아닌, 비어 있지 않은 문자열 값입니다. :-)
null 가 아니라는 것은 사실입니다 . "객체 없음"을 의미하는 객체 참조입니다. 그것은 (예를 들면, 그들은 객체 참조를 제공 할 때 호스트가 제공하는 인터페이스와 함께 사용되는하지만 제공이없는 무엇 때문에, 중요 할 때 부모의 마지막 요소, 또는 해당 ID와 어떤 요소가 없을 때). 호스트가이를 위해 사용하는 기술은 JavaScript가 변수 / 속성 유형에 대한 것만 큼 유연하지 않을 수 있으므로 obj ref (와 반대 ) 가 필요했습니다 . node.nextSiblingnodegetElementByIdnullundefined
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를 돌려줍니다.
당신은 사이를 점검하기 위해 이러한 연산자를 사용할 수 있습니다 . 예를 들면 다음과 같습니다.undefinednull
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 === nullundefined직접 비교 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);
}
}
==와는===잘 여기서 설명 .