변수가 null이 아닌지 확인하는 방법? 방법이 아래에 있음을 알고

변수가 아닌지 확인하는 JavaScript의 두 가지 방법이 아래에 있음을 알고 null있지만 사용하기 가장 좋은 방법은 혼란 스럽습니다.

내가해야합니까 :

if (myVar) {...}

또는

if (myVar !== null) {...}



답변

그것들은 동등하지 않습니다. 첫 번째 는 진실한if 경우 (즉 , 조건부로 평가되는 경우 myVar) 명령문 다음에 블록을 실행하는 반면, 두 번째는 이외의 값 이면 블록을 실행합니다 .truemyVarnull

JavaScript에서 진실이 아닌 유일한 값은 다음과 같습니다 (일명 거짓 값).

  • null
  • undefined
  • 0
  • "" (빈 문자열)
  • false
  • NaN

답변

변수가 NULL이 아닌지 테스트하는 방법은 다음과 같습니다.

if (myVar !== null) {...}

myVar에가 null이 myVar에이 정의되지 않았거나 허위 또는 경우 …이 실행됩니다 아닌 경우 블록이 실행됩니다 0이나 NaN또는 다른 어떤 ..


답변

이 게시물을 읽으십시오 : http://enterprisejquery.com/2010/10/how-good-c-habits-can-encourage-bad-javascript-habits-part-2/

일반적으로 JavaScript에 대한 유용한 팁이 있지만 언급 한 가지는 다음과 같이 null을 확인해야한다는 것입니다.

if(myvar) { }

또한 당신이 깨닫지 못할 ‘거짓’으로 간주되는 것을 언급합니다.


답변

  • 내부의 코드 는 다음과 같은 if(myVar) { code }경우에만 실행되지 않거나 변수를 정의하지 않았습니다 (추가로 코드 실행을 중지하고 예외를 throw).myVarfalse, 0, "", null, undefined, NaNmyVar
  • 내부의 코드 는 같 거나 정의 if(myVar !== null) {code}하지 않은 경우에만 실행되지 않습니다 (예외 발생).myVarnull

여기에 모든 것이 있습니다 ( src )

만약

여기에 이미지 설명을 입력하십시오

== (그것의 부정 ! = )

여기에 이미지 설명을 입력하십시오

=== (그것의 부정 ! == )

여기에 이미지 설명을 입력하십시오


답변

내가 방금 본 또 다른 가능한 시나리오가 있습니다.

나는 아약스 호출을하고 문자열 형식으로 데이터를 null로 되 돌렸다. 나는 이것을 다음과 같이 확인해야했다.

if(value != 'null'){}

따라서 null은 실제로 null이 아닌 “null”을 읽는 문자열이었습니다.

편집 : 내가 해야 할 방식으로 이것을 판매하지 않는다는 것을 이해해야합니다 . 이것이 유일한 방법 인 시나리오가있었습니다. 왜 백엔드를 쓴 사람이 데이터를 잘못 표시했는지 확실하지 않지만 실제로는 이것이 현실입니다. 그것이 옳지 않다는 것을 이해 한 사람이 실제로 투표 한 것을보고, 실제로 도움이되는 누군가에 의해 투표되는 것을 보는 것은 실망 스럽습니다.


답변

if myVar가 null이면 block이 다른 방식으로 실행되지 않으면 실행됩니다.

if (myVar != null) {...}


답변

때로는 정의되지 않은 경우 준비하는 것이 좋습니다. 이를 위해 typeof를 사용했습니다.

if(typeof(variable) !== "undefined") {
    //it exist
    if(variable !== null) {
        //and is not null
    }
    else {
        //but is null
    }
}
else {
    //it doesn't
}