Javascript 에서 null 값이 확인할지 어떻게 합니까?

Javascript 에서 null 값이 확인할지 어떻게 해야 합니까? 하지만 내가 작성했습니까 아래 코드는 didn& # 39, 빗나갔다.

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

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

}   

그리고 내 JavaScript 프로그램 오류 찾기 어떻게 해야 합니까?

질문에 대한 의견 (7)
해결책

Javascript 가 매우 유연한 관련된 &quot 검사 null"; 값. # 39, 실제로 빈 문자열을 찾는 you& 추측, re i& # 39 m 인데, 이 경우 간단해진다는 코드 작동합니다.

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

('&Quot ";') 가 빈 문자열을 확인할지 'null', ',', '거짓' 과 '0' 와 '난' 숫자임 undefined

유념하십시오 경우 특별히 고안되었습니다 검사 숫자에 대해서는 매우 흔한 실수로 된다는 '0' 이 방법을 사용하면 및 'num! = 0' 는 기본 (또는 'num! = - 1' 또는 '~ 번호' (해키 코드 수 있는 검사를 '-')) 의 기능을 갖춘 '-', '' 복귀하십시오 indexOf (예:)

해설 (9)
    • Nulll 확인하기 위해 사용하는 것과 특별히 이:
if (variable === null)

이 테스트는 위한 전용) , 전달하십시오 'null', ',' 대한 '&quot &quot 전달하십시오 않습니다', '거짓', '0' 또는 '난' 정의되지 않았습니다.

또한, 각 &quot I& # 39, ve 제공한 상대경로를 검사를 false-like&quot. 값 (true 를 돌아갈 것이라고 방정식입니다 가변적입니다 '!').

참고, 절대 검사 중 일부에 대해 사용하는 '는 nnt 구현하십시오 합니다. = '와' 메리 페로프 '.

[I& # 39, ve a 여기서 생성된 모든 개별 테스트를 이스피들 표시하십시오 apc®] (https://jsfiddle.net/WebWanderer/8n9vtyek/)

다음은 각 출력입니다 확인:

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)

- 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

39 의 it& 볼 수 있듯이, 조금 더 어려운 상대로 테스트하려면 ',' 난

해설 (7)

그냥 재장착합니다 '=' 을 (를) '=' 모든 위치에서.

'=' 는 느슨해짐 또는 평등 비교 요약

'=' 는 완전 항등 비교

기사를 보고 매든 (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Equality_comparisons_and_sameness) 자세한 내용은 [평등 비교, 동일성].

해설 (5)
  • 완전 항등 operator:-*

우리는 nulll '=' 에서 확인할 수 있다

if ( value === null ){

}

그냥 "만약 사용하여 '

if( value ) {

}
    • 진정한 가치를 평가할 경우 아니다.
  • null
  • undefined
  • 빈 문자열 (&quot ";)
  • 거짓값
  • 0
해설 (0)

개선을 위한 검사를 통해 명시적으로 'null' 뿐만 아니라 간단한 문법을 통해 오토메이티드 수락됨

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

<! - begin 스니핏: js 숨기십시오: 거짓값 콘솔: 진정한 바벨. &gt 거짓값 -;

// 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");
}

끝 - &lt 스니핏 >;!

해설 (0)

첫째, you have a return 문을 함수은 없이 바디입니다. 오류를 발생시킬 수 있는 가능성이 있다.

네 확인 할 수 있는 방법이 될 것이라고 클리너 사용하면 됩니다! 연산자:

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

    alert("fill all columns");

}
해설 (1)
        • 및 nulll 단순히 javascript 에서 정의되지 않은 확인하기 위해 필요한 기록하십시오 다음과 같다.
if (!var) {
        console.log("var IS null or undefined");
} else {
        console.log("var is NOT null or undefined");
}
해설 (1)

Javascript 로 문자열이어야 'null' 같지 않습니다.

패스 패스 '는' 때 '당신' 사실이라면 걱정했던것 = null # 39 는 항등 연산자, re 있다는 사실을 알고 있기 때문에 빈 문자열을 you& 느슨해짐 '=' 는 특정한 종류의 유형을 강제.

예를 들어, 이 표현은 참.

'' == 0

반면 완전 항등 연산자 '=' 밝히고 이는 거짓값:

'' === 0

& # 39, & # 39 점을 감안할 때 ',' 과 '0' 는 '& # 39, & # 39 비유하 합리적으로 느슨하게 하는 추측 할 수 있습니다.' 와 'null' 이 느슨하게 같다. 그러나 그렇지 않다.

이 표현은 거짓값:

'' == null

모든 문자열을 비교한 결과 'null' 거짓. 따라서 '와' = null 사용 중인 다른 모든 테스트를 통과, 사용자는 항상 거짓값 lan-alert 이보다 더 좋을 순 없다.

코드에 대한 각 값마다 비교하십시오 해결하십시오, 빈 문자열:

pass === ''

Re ',' '가 있는 경우 특정 you& # 39, & # 39, & # 39 전달하십시오 문자열으로 전달하십시오 = 빈 문자열은 디렉토리에만 도 사용할 수 있기 때문에,' 가 빈 문자열을 느슨하게 같음. 반면 일부 전문가들은 it& # 39 의 JavaScript 로 완전 항등 좋습니다 항상 flfile. 않으면 강제 유형을 구체적으로 수행할 수 있는 느슨해짐 항등 연산자 향상합니다.

궁금해할까봐 어떤 쌍의 값은 테이블 &quot 느슨하게 비유하 http://schmidt. devlib. 동일성 comparisons"; 의 [mizilla 기사를 본 항목에서는] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Equality_comparisons_and_sameness).

해설 (0)

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 {}   

'' 자신의 오류를 발생시킬 수도 있습니다. 지켜보리니 .

해설 (1)

39 에 대한 이 설명임을 WebWanderer& 검사 관련 솔루션을 장남 (난 아직 공식적인 의견을 충분히 담당자별로 남겨두십시오 don& # 39, t). 이 솔루션은 교체품으로 판독합니다

if(!parseInt(variable) && variable != 0 && typeof variable === "number")

하지만 이 같은 '되는' 0 '에 대한 합리적 숫자임 페일오버됩니다 라운드하지 가변적입니다 = 0.1'. 더 좋은 테스트 다음과 같습니다.

if(isNaN(variable) && typeof variable === "number")
해설 (3)

사실 제가 생각하는 사용 할 수 있습니다. "만약 (가치!! = = null 값이 정의되지 않은) ' "만약 (가치) '때문에 사용할 경우 0 또는 거짓 값을 필터링합니다 수도 있습니다.

다음과 같은 두 가지 기능을:

const firstTest = value => {
    if (value) {
        console.log('passed');
    } else {
        console.log('failed');
    }
}
const secondTest = value => {
    if (value !== null && value !== undefined) {
        console.log('passed');
    } else {
        console.log('failed');
    }
}

firstTest(0);            // result: failed
secondTest(0);           // result: passed

firstTest(false);        // result: failed
secondTest(false);       // result: passed

firstTest('');           // result: failed
secondTest('');          // result: passed

firstTest(null);         // result: failed
secondTest(null);        // result: failed

firstTest(undefined);    // result: failed
secondTest(undefined);   // result: failed

그냥 내 상황을 확인하기 위해 필요한 값이 정의되지 않은 내가 원하지 않는다고 '0' 또는 '널임 및 필터링하려면 & # 39, & # 39 거짓값' 또는 ',' 값. 그래서 내가 필요할 때 두 번째 실험체 확장하지만 이를 필터링합니다 너무 일으킬 수 있는 첫 시험 사용할 수 있습니다.

해설 (0)

Crc 값을 널임 또는 정의되지 않은 로다시 모듈을 사용할 수 있습니다.

_.isNil(value)
Example 

 country= "Abc"
    _.isNil(country)
    //false

   state= null
    _.isNil(state)
    //true

city= undefined
    _.isNil(state)
    //true

   pin= true
    _.isNil(pin)
    // false   

참조 링크: https://lodash.com/docs/ # 이스 닐

해설 (0)

또 다른 방법은 찾았다고 테스트하려면 값이 null:

if(variable >= 0 && typeof variable === "object")

'null' 수 '와' 객체 '동시에' 역할을 합니다. Null null &lt = 0 = 0 '또는', ',' &gt 비교한 결과 'true'. Null null = 0 '또는' 비교 '&gt. 0 '또는' nulll &lt. 0 '거짓값 발생합니다. 그러나 우리는 이를 'null' 도 멀티비트 객체를 nulll.

  • I made a 보다 더 복잡한 기능을 할 수 있으며 어떤 유형을 나투라로프 * 마녀 메리 페로프 리즈한테 포함시키십시오 그룹화할 또는 유지

<! - begin 스니핏: js 숨기십시오: 거짓값 콘솔: 진정한 바벨. &gt 거짓값 -;

<! - 언어: &gt js 랭 -; /* 함수은 나투라로프 (변수 (variable 유형]) 추상형데이터타입 포함되어 있다. null null - undefined&quot, &quot 발생합니다. 포함되어 있거나, null&quot &quot 발생합니다. 난 - 난 업그레이드하면 &quot undefined"; 포함되어 있거나, NaN&quot &quot 발생합니다.

      • 는 인피니티 별도의 제외어 니프티 Infinity&quot 충스러웠으니 "; 번호 - 는 분리-정합성 번호임 salesforce. &quot int"; 또는 &quot double"; 는 별도의 &quot 어레이입니다 array"; object&quot 충스러웠으니 "; 텅 빈 &quot string&quot -;; empty&quot, &quot 발생합니다. 또는 빈 = 정의되지 않은 - 빈 &quot string"; undefined&quot, &quot 발생합니다. */ 함수은 나투라로프 (v, 스티페스) {
    • 해당 null (v = null) 반품하십시오 티페스트의 크루즈 (& # 39, null& # 39;) ? &quot null"; . undefined&quot ";;
  • NaN if (메리 페로프 v = &quot number";) 반환 (isNaN (v)? 티페스트의 크루즈 (& # 39, NaN& # 39;) ? &quot NaN"; . &quot undefined"; . /-infinity (v + 1 = v)? (티페스트의 크루즈 (& # 39 infinity& # 39; -;) &amp &; v = Number.NEGATIVE_INFINITY)? infinity&quot " -; . &quot infinity"; .
  • number * (티페스트의 크루즈 (& # 39, number& # 39;) ? (누마베리이신테거 (v)? &quot int"; . &quot double"; . number&quot ";;
  • array * if (메리 페로프 v = &quot object";) 반환 (티페스트의 크루즈 (& # 39, array& # 39;) &amp &; 라이드리자이 (v)? &quot array"; . object&quot ";;
  • empty * if (메리 페로프 v = &quot string";) 반환 (v = &quot ";) ? 티페스트의 크루즈 (& # 39, empty& # 39;) ? &quot empty"; .
  • empty = undefined 티페스트의 크루즈 (& # 39, 빈 = undefined& # 39;) * ? &quot undefined"; . &quot string"; . string&quot ";; 다른 메리 페로프 반품하십시오 v }

데모 // 이제 유형 = [nulll, &quot, ", &quot, string&quot, 정의되지 않은, 난, 인피니티, - 인피니티, false &quot, false&quot, true &quot, true", 0, 1 - 1, 0.1, {0}, {var 1 &quot test&quot [1.2],,: 1, 1: 2, 길이: 2}]

대한 (i) 의 유형) { 콘솔드로그 (,,, &quot &quot 나투라로프 &quot 추상형데이터타입 [i] = ", 나투라로프 (유형 [i], &quot, null", &quot, NaN", " - infinity", ";;;; array&quot number&quot &quot &quot 빈 = undefined") } 끝 - &lt 스니핏 >;!

해설 (0)

내가 이 기능을 사용할 수 있는 아주 단순해졌습니다 의아해 했다.

function safeOrZero(route) {
  try {
    Function(`return (${route})`)();
  } catch (error) {
    return 0;
  }
  return Function(`return (${route})`)();
}

연속적인 값을 라우트를 폭파시킨 다음 수 있는 것이 있다. 내가 사용하는 jQuery / 안녕, 개체 수 있도록 하는 등.

사례 1: 이 같은 간단한 객체에는 'const 테스토비 = {항목: [{발. # 39, & # 39 haya&. }, {발. nulll}, {발. & # 39, & # 39, 소리! }}], '.

하지만 우리가 매우 큰 객체에는 haven& # 39, 자도 안 걸릴 수 있다 "고 말했다. 그래서 지나갈 경로를 통해:

let value1 = testobj.items[2].val;  // "hum!"
let value2 = testobj.items[3].val;  // Uncaught TypeError: Cannot read property 'val' of undefined

let svalue1 = safeOrZero(`testobj.items[2].val`)  // "hum!"
let svalue2 = safeOrZero(`testobj.items[3].val`)  // 0

물론 'null' 또는 '& # 39 원할 경우, 어떠한 value& # 39 사용할 수 있습니다.'. 어떤 필요에 따라.

일반적으로 it& # 39 의 경우에는 오류를 발생시킬 수 쿼리하지 DOM 또는 jQuery 선택기를 찾을 수 없습니다. 그러나 다음과 같은 항목을 사용하여

const bookLink = safeOrZero($('span.guidebook > a')[0].href);
if(bookLink){
  [...]
}
해설 (0)
        • 때 JAVASCRIPT 에서 아파이크 가변입니다 보였지만 아직 정의되지 않은 '는' 가치, 그 유형을 지정받습니다 선언했다. 그래서 우리는 가변적입니다 확인할 수 있는 경우에도 '대신' 객체에는 인스턴스입니다 값을 갖고 있는 일부 약간만이라도 .

만드는 방법은 무효 확인 및 안에서 사용할 수 있는 진정한 '도우미' 되돌려줍니다 너회의 제공한다.

  • 도우미 기능을 empty:* 가변입니다 있는지 확인하십시오.
function isEmpty(item){
    if(item){
        return false;
    }else{
        return true;
    }
}
  • try catch call:* 탁월한 apiu
try {

    var pass, cpass, email, cemail, user; // only declared but contains nothing.

    // parametrs checking
    if(isEmpty(pass) || isEmpty(cpass) || isEmpty(email) || isEmpty(cemail) || isEmpty(user)){
        console.log("One or More of these parameter contains no vlaue. [pass] and-or [cpass] and-or [email] and-or [cemail] and-or [user]");
    }else{
        // do stuff
    }

} catch (e) {
    if (e instanceof ReferenceError) {
        console.log(e.message); // debugging purpose
        return true;
    } else {
        console.log(e.message); // debugging purpose
        return true;
    }
}
  • 일부 cases:* 테스트
var item = ""; // isEmpty? true
var item = " "; // isEmpty? false
var item; // isEmpty? true
var item = 0; // isEmpty? true
var item = 1; // isEmpty? false
var item = "AAAAA"; // isEmpty? false
var item = NaN; // isEmpty? true
var item = null; // isEmpty? true
var item = undefined; // isEmpty? true

console.log("isEmpty? "+isEmpty(item));
해설 (2)

이 경우 오는 부울 값을 DB 에서 작동하지 않습니다. 대한 예:

 value = false

 if(!value) {
   // it will change all false values to not available
   return "not available"
 }
해설 (0)

이거 드세요.

if (!variable && typeof variable === "object") {
    // variable is null
}
해설 (2)