답변:
추상 항등 연산자 의 품질을 사용하여이를 수행 할 수 있습니다 .
if (variable == null){
// your code here.
}
때문에 null == undefined사실, 위의 코드를 모두 잡을 것 null등을 undefined.
const y = undefined; y == null;반환해야합니다true
y상수 를 선언 했지만 비교 abc하지는 않습니다 ( y). 나는 시험 할 때 y경유 console.log(y == null);에 크롬과 파이어 폭스 내가 가지고 true결과. 오류가 발생하면 =비교 대신 할당 연산자를 사용 하여 다시 할당 할 수 없으므로 ==오류를 반환하는 것이 좋습니다 const.
null하거나 undefined변수가 동일한 경우 통과 0? 문제는 truthy 값을 테스트 아니라, 명시 적으로 테스트에 대해하지 않습니다 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.
코드에서 선언되지 않은 변수에 대한 참조가 없어야합니다.
!==대신 썼기 때문에 그렇습니다 !=.
undefined선언되었지만 초기화되지 않은 변수처럼 선언되고 값 이 있습니다. 즉, var someVar;인수가 실제로 유지되지 않습니다.
위의 답변을 결합하면 가장 완벽한 답변은 다음과 같습니다.
if( typeof variable === 'undefined' || variable === null ){
// Do stuff
}
이것은 선언되지 않았거나 선언되고 명시 적으로 null 또는 undefined로 설정된 변수에 대해 작동해야합니다. 실제 널이 아닌 값을 갖는 선언 된 변수에 대해 부울 표현식은 false로 평가되어야합니다.
typeof그것이 함수가 아니라 연산자 라는 것을 알고 있으므로 괄호가 필요하지 않지만 그럼에도 불구하고 명확하게 읽기 위해 괄호에 감사드립니다.
variable == null
if (variable == null) {
// Do stuff, will only match null or undefined, this won't match false
}
undefined로 평가됩니다 null.
/*jshint eqnull:true */귀하의 JS 문서 또는 함수의 상단에, 그리고 JSHint는 당신의 사용에 대해 경고 중지됩니다 == null.
==? if(variable == null)이 답변 의 강압 은 나에게 완전한 의미를 갖습니다.
if (typeof EmpName != 'undefined' && EmpName) {
값이 아닌 경우 true로 평가됩니다.
없는
찾으시는 주소가 없습니다
NaN
빈 문자열 ( "")
0
그릇된
if (EmpName). 그것의이 경우 undefined이미 falsy 될 것입니다.
var EmpName; if (EmpName). 변수가 정의되었지만 값이 할당되지 않은 경우
jQuery attr()함수는 빈 문자열 또는 실제 값을 반환합니다 (그리고 never null또는 undefined). 그것이 반환하는 유일한 시간 undefined은 선택기가 요소를 반환하지 않은 경우입니다.
따라서 빈 문자열에 대해 테스트 할 수 있습니다. 또는 빈 문자열, null 및 undefined가 false이므로이 작업을 수행 할 수 있습니다.
if (!EmpName) { //do something }
ReferenceError: EmpName is not defined
undefined요소에 속성이 존재하지 않으면 jQuery가 반환 합니다 (답변에 따라 선택기에 일치하는 요소가없는 경우뿐만 아니라). 예를 들어, img아니오는 src반환 undefined을위한$('img').attr('src');
이를 위해 내 자신의 기능을 작성했습니다. 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비어 있지 않은 것으로 간주됩니다.
{ }. 이것은 흔하고 어리석은 언어 문제이지만 잊어 버렸습니다. 모든 검색에서 정의되지 않은 null 값 또는 느슨한 동등 비교 (==)에 대한 답변을 표시하지만 엄격한 동등 (===) 또는 이와 동등한 것은 아닙니다. 그리고 여기 페이지의 맨 아래 에있는 -1 순위의 답변 (내가 upvoted하기 전에)이 나를 피하는 대답입니다. Object.keys( obj ).length < 1또는 -1이 아니라고 가정하면 === 0 일 수 있습니다. 어쨌든 0으로 상향 조정되었습니다. : p
==하기 ===에 여기를, 다음이 합리적인 기능 할 것이다.
확인하려는 변수가 전역 변수이면
if (window.yourVarName) {
// Your code here
}
이 방법으로 yourVarName변수가 존재하지 않아도 오류가 발생 하지 않습니다.
if (window.history) {
history.back();
}
window은 전역 변수를 속성으로 보유하는 객체이며 JavaScript에서는 존재하지 않는 객체 속성에 액세스하는 것이 합법적입니다. 경우 history다음 존재하지 않는 window.history반환 undefined. undefined거짓이므로 if(undefined){}블록의 코드가 실행되지 않습니다.
null나 undefined, 나 자바 스크립트는 (Node.js를에서 IE) 브라우저 외부에서 실행중인 경우이 작동합니다. 또한 치료 전역이 설정됩니다 0, false또는 ''신고되지 않은이나되는 것과 동일 undefined또는 null일반적으로 미세이다.
아마도 가장 짧은 방법은 다음과 같습니다.
if(EmpName == null) { /* DO SOMETHING */ };
증거는 다음과 같습니다.
그리고 여기에 대한 자세한 내용이 있습니다 ==(source here )
보너스 : 이유 ===가 더 명확한 이유 ==( agc answer보기 )
방금 객체에 null이 있는지 확인하는 것과 같은 문제가 있습니다.
나는 이것을 단순히 사용한다 :
if (object) {
// Your code
}
예를 들면 다음과 같습니다.
if (document.getElementById("enterJob")) {
document.getElementById("enterJob").className += ' current';
}
사용되므로 jQuery를 하면 변수가 정의되지 않은 경우, 또는 그 값이 하나의 기능을 이용하여 널을인지를 결정할 수있다.
var s; // undefined
jQuery.isEmptyObject(s); // will return true;
s = null; // defined as null
jQuery.isEmptyObject(s); // will return true;
// usage
if(jQuery.isEmptyObject(s)){
alert('Either variable: s is undefined or its value is null');
}else{
alert('variable: s has value ' + s);
}
s = 'something'; // defined with some value
jQuery.isEmptyObject(s); // will return false;
ReferenceError: s is not defined첫 번째 예 에서 여전히 오류가 발생했습니다 .
확인하는 가장 쉬운 방법은 다음과 같습니다.
if(!variable) {
// If the variable is null or undefined then execution of code will enter here.
}
false바람직하지 않은 경우 코드를 실행합니다 .
undefined, null 그리고 빈 문자열, 0과 같은 몇 가지 다른 것들, -0 NaN및 false통과. !연산자는 피연산자를 강제로 여기로 variable-부울로 : ecma-international.org/ecma-262/#sec-toboolean
아래 솔루션으로 :
const getType = (val) => typeof val === 'undefined' || !val ? null : typeof val;
const isDeepEqual = (a, b) => getType(a) === getType(b);
console.log(isDeepEqual(1, 1)); // true
console.log(isDeepEqual(null, null)); // true
console.log(isDeepEqual([], [])); // true
console.log(isDeepEqual(1, "1")); // false
etc...
다음을 확인할 수 있습니다.
변수가 null인지 정의되지 않았는지 테스트하려면 아래 코드를 사용하십시오.
if(typeof sVal === 'undefined' || sVal === null || sVal === ''){
console.log('variable is undefined or null');
}
typeof을 잃지 undefined말고 똑바로 비교하십시오 . 이것은 효과가 있지만 추가 연산자는 효과가 없습니다.
이 테스트는 Chrome 콘솔에서 실행합니다. (void 0)을 사용하면 정의되지 않은 것을 확인할 수 있습니다.
var c;
undefined
if (c === void 0) alert();
// output = undefined
var c = 1;
// output = undefined
if (c === void 0) alert();
// output = undefined
// check c value c
// output = 1
if (c === void 0) alert();
// output = undefined
c = undefined;
// output = undefined
if (c === void 0) alert();
// output = undefined
이것을 보자.
let apple; // Only declare the variable as apple
alert(apple); // undefined
위의 변수는로만 선언됩니다 apple. 이 경우 메소드를 호출하면 alert정의되지 않은 것으로 표시됩니다.
let apple = null; /* Declare the variable as apple and initialized but the value is null */
alert(apple); // null두 번째 것은 applevalue의 변수가 null이기 때문에 null을 표시합니다 .
따라서 값이 정의되지 않았는지 또는 null인지 확인할 수 있습니다.
if(apple !== undefined || apple !== null) {
// Can use variable without any error
}
가장 좋은 방법은:
if(typeof variable==='undefined' || variable===null) {
/* do your stuff */
}
var i;
if (i === null || typeof i === 'undefined') {
console.log(i, 'i is undefined or null')
}
else {
console.log(i, 'i has some value')
}
typeof산출하지 않습니다 . 또한, 경우 이미 사실 이다 번째 부울이 일 경우에도 중복 될 수 있도록. undefined'undefined'i == nulliundefined
foo == null검사는 트릭을하고 짧은 방식으로 "정의되지 않았거나 널 (null)"사건을 해결해야한다. ( "foo is not declaration"사례를 고려하지 않음.) 그러나 (가장 좋은 관행으로) 3 등가를 가진 사람들은 그것을 받아들이지 않을 수 있습니다. 에 그냥보기 eqeqeq 또는 트리플 - 동일 eslint 및 tslint의 규칙을 ...
이 경우 변수가 개별 인지 undefined또는 null개별 인지 검사 할 때 명시 적 접근 방식을 적용해야하며 주제에 대한 나의 기여 (지금은 음수가 아닌 27 개)가 void 0검사를 수행하는 짧고 안전한 방법으로 사용하는 것입니다 에 대한 undefined.
foo === undefinedundefined는 예약어가 아니므로 음영 처리 될 수 있으므로 사용 이 안전하지 않습니다 ( MDN ). typeof === 'undefined'check를 사용하는 것은 안전하지만, foo-is-declared 경우에 관심이 없다면 다음과 같은 접근 방식을 사용할 수 있습니다.
if (foo === void 0 || foo === null) { ... }
확인하는 함수를 작성하는 경우 :
export function isEmpty (v) {
if (typeof v === "undefined") {
return true;
}
if (v === null) {
return true;
}
if (typeof v === "object" && Object.keys(v).length === 0) {
return true;
}
if (Array.isArray(v) && v.length === 0) {
return true;
}
if (typeof v === "string" && v.trim().length === 0) {
return true;
}
return false;
}
여전히이 두 가지 조건을 테스트하는 가장 안전하고 안전한 방법은 값을 문자열로 캐스팅하는 것입니다.
var EmpName = $("div#esd-names div#name").attr('class');
// Undefined check
if (Object.prototype.toString.call(EmpName) === '[object Undefined]'){
// Do something with your code
}
// Nullcheck
if (Object.prototype.toString.call(EmpName) === '[object Null]'){
// Do something with your code
}
typeof를 사용하여 값이 정의되지 않았거나 null인지 확인할 수 있습니다.
if(typeof value == 'undefined'){
null. 몇 년 전에 정확하고 완전한 답변을받은 질문에 새롭고 잘못된 답변이 제공되는 이유를 이해하지 못합니다. 현재 답변이 어떻게 든 부족하다고 생각하십니까?
if(x==null)JavaScript에서는 나쁜 생각입니다. 다음으로 판단 "=="-예상치 못한 유형 강제 변환을 유발할 수 있으며 CoffeeScript에서 읽을 수 없으므로
조건 판단에 "=="또는 "! ="를 사용하지 마십시오!
if(x)더 낫지 만 0과 ""에 주의하십시오 . 동일한 방법 이 true 가 아닌 false 로 취급됩니다 ."!= null"
JavaScript 모범 사례를 참조하십시오 .
==에 비교하는 것은 null입니다 잡기의 표준 방법 및 JS한다. 와 유형 강제 변환 이 특정 컨텍스트에 위험하지 않고, 모두 잡기의 목표 달성의 장점을 취해지고 사실상 와 동시에합니다. 몇 년 전에 만족스럽게 해결 된 질문에 대한 부정확하고 오해의 소지가있는 답변을 제공하기 전에 언어에 대해 더 많은 시간을 보내십시오. nullundefined==nullundefined