반응형

변수가 'undefined'또는 'null'인지 여부를 어떻게 결정할 수 있습니까?


질문

 

변수가 정의되지 않은지 또는 null인지를 어떻게 결정합니까?

내 코드는 다음과 같습니다.

var EmpName = $("div#esd-names div#name").attr('class');
if(EmpName == 'undefined'){
  // DO SOMETHING
};
<div id="esd-names">
  <div id="name"></div>
</div>

그러나 이렇게하면 JavaScript 통역사가 실행을 중지합니다.


답변

 

추상 평등 연산자의 자질을 사용하여 다음을 수행 할 수 있습니다.

if (variable == null){
    // your code here.
}

null == undefined가 true이기 때문에 위의 코드는 null 및 undefined를 모두 잡을 것입니다.



답변

NULL을 잡는 표준 방법과 정의되지 않은 동시에 다음과 같습니다.

if (variable == null) {
     // do something 
}

- 더 명시 적 있지만 간결하게 100 %이 적합합니다.

if (variable === undefined || variable === null) {
     // do something 
}

전문 JS를 작성할 때 유형 평등과 == vs ===의 행동이 이해됩니다.따라서 우리는 ==을 사용하고 null과 비교합니다.


다시 편집하십시오

TypeOf의 사용을 암시하는 의견은 단순히 잘못되었습니다.예, 위의 솔루션은 변수가 없으면 위의 referenceError가 발생합니다.이것은 좋은 일입니다.이 ReferenceError는 바람직합니다. 컴파일러 오류가 다른 언어로 사용되는 것처럼 코드를 발송하기 전에 실수를 찾고 수정하는 데 도움이됩니다.TRY / CATCH를 사용하면 제어가없는 입력을 사용하여 작업하지 않습니다.

코드에서 해결되지 않은 변수에 대한 참조가 없습니다.



답변

위의 답변을 결합하면 가장 완전한 대답이 될 것 같습니다.

if( typeof variable === 'undefined' || variable === null ){
    // Do stuff
}

이는 명시되지 않은 또는 명시 적으로 NULL 또는 Undefined로 설정된 변수에 대해 작동해야합니다.부울 표현식은 실제 null이 아닌 값이없는 선언 된 변수에 대해 false를 평가해야합니다.



답변

아마도 이것을하는 가장 짧은 방법은 다음과 같습니다.

if(EmpName == null) { /* DO SOMETHING */ };

여기는 증거가 있습니다 :

기능 확인 (EmpName) { if (empname == null) {true return;}; 거짓 반환; } var log = (t, a) => console.log (`$ {t} -> $ {check (a)}`); 로그 ( 'null', null); 로그 ( 'undefined', undefined); 로그 ( '난', NAN); 통나무('""', ""); 통나무('{}', {}); 통나무('[]', []); 로그 ( '[1], [1]); 로그 ( '[0]', [0]); 통나무('[[]]', [[]]); 로그 ( 'true', true); 로그 ( '거짓', false); 로그 ( ' "true"', "true"); log ( ' "false"', "false"); 로그 ( '무한대', 무한대); log ( '- 무한대', -infinity); 로그 ( '1', 1); 로그 ( '0', 0); 로그 ( '- 1', -1); 로그 ( ' "1"', "1"); log ( ' "0"', "0"); 로그 ( ' "- 1"', "-1"); // "void 0"케이스 console.log ( '--- \ n "true"는 다음과 같습니다.', true); console.log ( 'void 0 "은 :', void 0); 로그 (void 0, void 0);// "void 0"은 "undefined"입니다.

그리고 여기에 자세한 내용은 == (여기서는 소스)

javascript

보너스 : 이유 === ==보다 더 명확합니다 (AGC 답변을보십시오)

javascript



답변

if (typeof EmpName != 'undefined' && EmpName) {

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

없는 찾으시는 주소가 없습니다 난 빈 문자열 ( "") 0. 거짓



답변

가장 짧고 쉬운 :

if(!EmpName ){
 // DO SOMETHING
}

EMPNAME이 다음과 같으면 이것은 TRUE를 평가합니다.

없는 찾으시는 주소가 없습니다 난 비어 있는 끈 ("") 0. 거짓

출처:https://stackoverflow.com/questions/2647867/how-can-i-determine-if-a-variable-is-undefined-or-null
반응형