변수가 undefined
또는 인지 어떻게 알 수 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
사실, 위의 코드를 모두 잡을 것 null
등을 undefined
.
답변
동시에 잡는 표준 방법 은 다음 null
과 undefined
같습니다.
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로 설정된 변수에 대해 작동해야합니다. 실제 널이 아닌 값을 갖는 선언 된 변수에 대해 부울 표현식은 false로 평가되어야합니다.
답변
if (variable == null) {
// Do stuff, will only match null or undefined, this won't match false
}
답변
if (typeof EmpName != 'undefined' && EmpName) {
값이 아닌 경우 true로 평가됩니다.
-
없는
-
찾으시는 주소가 없습니다
-
NaN
-
빈 문자열 ( “”)
-
0
-
그릇된
답변
jQuery attr()
함수는 빈 문자열 또는 실제 값을 반환합니다 (그리고 never null
또는 undefined
). 그것이 반환하는 유일한 시간 undefined
은 선택기가 요소를 반환하지 않은 경우입니다.
따라서 빈 문자열에 대해 테스트 할 수 있습니다. 또는 빈 문자열, null 및 undefined가 false이므로이 작업을 수행 할 수 있습니다.
if (!EmpName) { //do something }
답변
이를 위해 내 자신의 기능을 작성했습니다. JavaScript가 이상합니다.
말 그대로 무엇이든 사용할 수 있습니다. (이것은 변수에 사용 가능한 값이 포함되어 있는지 확인 하지만이 정보는 일반적으로 필요하기 때문에 게시 할 가치가 있다고 생각합니다). 메모를 남겨 두십시오.
function empty(v) {
let type = typeof v;
if (type === 'undefined') {
return true;
}
if (type === 'boolean') {
return !v;
}
if (v === null) {
return true;
}
if (v === undefined) {
return true;
}
if (v instanceof Array) {
if (v.length < 1) {
return true;
}
} else if (type === 'string') {
if (v.length < 1) {
return true;
}
if (v === '0') {
return true;
}
} else if (type === 'object') {
if (Object.keys(v).length < 1) {
return true;
}
} else if (type === 'number') {
if (v === 0) {
return true;
}
}
return false;
}
TypeScript와 호환됩니다.
이 함수는 PHP 함수 와 정확히 같은 기능을 수행해야 empty()
합니다 (참조 RETURN VALUES
).
고려 undefined
, null
, false
, 0
, 0.0
, "0"
{}
, []
등의 비 웁니다.
"0.0"
, NaN
, " "
, true
비어 있지 않은 것으로 간주됩니다.