[javascript] JavaScript에서 null 값을 확인하려면 어떻게합니까?

JavaScript에서 null 값을 확인하려면 어떻게합니까? 아래 코드를 작성했지만 작동하지 않았습니다.

if (pass == null || cpass == null || email == null || cemail == null || user == null) {      

    alert("fill all columns");
    return false;  

}   

JavaScript 프로그램에서 오류를 어떻게 찾을 수 있습니까?



답변

자바 스크립트는 “널 (null)”값 확인과 관련하여 매우 유연합니다. 실제로 빈 문자열을 찾고 있다고 추측합니다.이 경우이 간단한 코드가 작동합니다.

if(!pass || !cpass || !email || !cemail || !user){

빈 문자열 (확인되는 ""), null, undefined, false및 숫자 0NaN

특별히 번호를 확인하는 경우가 미스에 대한 일반적인 실수는 것을 바랍니다 참고 0이 방법은, 그리고 num !== 0선호 (또는 num !== -1또는 ~num(해키 코드은 또한 검사에 대한 -1)) 함수를 돌려 -1, 예를 들어 indexOf)


답변

null을 구체적으로 확인하려면 다음을 사용하십시오.

a
if (variable === null)

이 테스트는 것입니다 위한 통과 null및 위해 통과하지 않을 것이다 "", undefined, false, 0, 또는 NaN.

또한 각 “false-like”값 (에 대해 true를 반환하는 값)에 대한 절대 검사를 제공했습니다 !variable.

일부 절대 점검의 경우 absolutely equals: ===and 사용을 구현해야합니다 typeof.

JSFiddle을 여기에서 만들어 모든 개별 테스트가 작동하는지 보여줍니다.

각 검사 결과는 다음과 같습니다.

Null Test:

if (variable === null)

- variable = ""; (false) typeof variable = string

- variable = null; (true) typeof variable = object

- variable = undefined; (false) typeof variable = undefined

- variable = false; (false) typeof variable = boolean

- variable = 0; (false) typeof variable = number

- variable = NaN; (false) typeof variable = number



Empty String Test:

if (variable === '')

- variable = ''; (true) typeof variable = string

- variable = null; (false) typeof variable = object

- variable = undefined; (false) typeof variable = undefined

- variable = false; (false) typeof variable = boolean

- variable = 0; (false) typeof variable = number

- variable = NaN; (false) typeof variable = number




Undefined Test:

if (typeof variable == "undefined")

-- or --

if (variable === undefined)

- variable = ''; (false) typeof variable = string

- variable = null; (false) typeof variable = object

- variable = undefined; (true) typeof variable = undefined

- variable = false; (false) typeof variable = boolean

- variable = 0; (false) typeof variable = number

- variable = NaN; (false) typeof variable = number



False Test:

if (variable === false)

- variable = ''; (false) typeof variable = string

- variable = null; (false) typeof variable = object

- variable = undefined; (false) typeof variable = undefined

- variable = false; (true) typeof variable = boolean

- variable = 0; (false) typeof variable = number

- variable = NaN; (false) typeof variable = number



Zero Test:

if (variable === 0)

- variable = ''; (false) typeof variable = string

- variable = null; (false) typeof variable = object

- variable = undefined; (false) typeof variable = undefined

- variable = false; (false) typeof variable = boolean

- variable = 0; (true) typeof variable = number

- variable = NaN; (false) typeof variable = number



NaN Test:

if (typeof variable == 'number' && !parseFloat(variable) && variable !== 0)

-- or --

if (isNaN(variable))

- variable = ''; (false) typeof variable = string

- variable = null; (false) typeof variable = object

- variable = undefined; (false) typeof variable = undefined

- variable = false; (false) typeof variable = boolean

- variable = 0; (false) typeof variable = number

- variable = NaN; (true) typeof variable = number

보시다시피, 테스트하기가 조금 더 어렵습니다 NaN.


답변

바로 교체 =====모든 장소에서 가능합니다.

== 느슨하거나 추상적 인 평등 비교

=== 엄격한 평등 비교입니다

자세한 내용은 평등 비교 및 ​​동일성에 대한 MDN 기사를 참조하십시오 .


답변

엄격한 평등 연산자 :-

우리는 null을 확인할 수 있습니다 ===

if ( value === null ){

}

사용하여 if

if( value ) {

}

값이 아닌 경우 true로 평가됩니다 .

  • 없는
  • 찾으시는 주소가 없습니다
  • NaN
  • 빈 문자열 ( “”)
  • 그릇된
  • 0

답변

null구문 을 명시 적으로 확인 하지만 간단한 구문 으로 허용되는 답변보다 개선되었습니다 .

if ([pass, cpass, email, cemail, user].every(x=>x!==null)) {
    // your code here ...
}

// Test
let pass=1, cpass=1, email=1, cemail=1, user=1; // just to test

if ([pass, cpass, email, cemail, user].every(x=>x!==null)) {
    // your code here ...
    console.log ("Yayy! None of them are null");
} else {
    console.log ("Oops! At-lease one of them is null");
}


답변

먼저 함수 본문이없는 return 문이 있습니다. 오류가 발생할 가능성이 있습니다.

보다 확실한 확인 방법은 간단히! 운영자:

if (!pass || !cpass || !email || !cemail || !user) {

    alert("fill all columns");

}


답변

드디어 try catch를 사용할 수 있습니다

 try {
     document.getElementById("mydiv").innerHTML = 'Success' //assuming "mydiv" is undefined
 } catch (e) {

     if (e.name.toString() == "TypeError") //evals to true in this case
     //do something

 } finally {}   

당신은 또한 throw당신의 자신의 오류 를 할 수 있습니다 . 참조 .


댓글 달기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다