2012-06-08 4 views
2

이상한 동작을하는 null 변수가 있습니다. 왠지 나는 null인지 아닌지를 감지 할 수 없다! var는 emailFromUrl입니다.Javascript IF 문, 작동하지 않는 null 감지

console.log(emailFromUrl); //returns null 
    console.log(emailFormUrl.toString()); //returns null 
    console.log(emailFromUrl === null); //false! 
    console.log(emailFromUrl != null); //true! 
    console.log(typeof emailFromUrl); //string 
    console.log(!emailFromUrl); //false! 
    console.log(emailFromUrl === ""); //false 

도대체 무슨 일이 벌어지고있는거야?

답 :

console.log(emailFromUrl === 'null'); //true! 

여과되지 않은 콘솔 로그 :

Test71 | emailFromUrl : null | emailFromUrl === null : false | emailFromUrl != null : true | emailFromUrl.toString() : null | typeof emailFromUrl : string | !emailFromUrl : false | emailFromUrl === "" : false | emailFromUrl === "null" : true 
+0

이 console.log (typeof emailFromUrl);를 실행하면 어떻게됩니까? –

+0

마지막 로그에 'not equal to null'이라는 메시지가 나타납니다. –

+0

당신은 어떤 종류의 말을하고 있습니까? 당신이 정의한 것이지만 정의되지 않았습니까? var emailFromUrl = '' – PitaJ

답변

4

아마도 emailFromurl 값은 문자 그대로 null 문자열입니까?) 그것은 당신이 당신의 질문에 얻는 모든 결과를 설명 할 것입니다.

+1

사실 쉽습니다.'emailFromUrl'이 truey 값이고 (부인이 false이기 때문에) 문자열이고, 하나뿐입니다 문자열 화 될 때''null ''을주는 값 - 네,''null ''자체.) – raina77ow

0

당신이 객체가 "falsy"인 경우가 null 인에 따라 특정 로직, 당신은 확인할 수 있습니다 싶어하지 않는 한 (객체가 정의되지 않은 경우 0 또는 null)

if(!emailFromUrl) { 
    // handle the null scenario 
} 
+0

작동하지 않아 결과가 추가되었습니다. – Fresheyeball

1

wel l === 연산자는 값과 유형을 검사합니다. emailFromUrl은 string 유형이 아니므로 false로 평가됩니다.

+0

아, 또한 정의되지 않은지 확인하십시오. 즉, emailFromUrl == undefined –