如何判断变量是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解释器会停止执行。
如何判断变量是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解释器会停止执行。
我仍然认为测试这两个条件的最佳/安全方法是将值转换为字符串:
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
}
最好的方式:
if(typeof variable==='undefined' || variable===null) {
/* do your stuff */
}
if(typeof value == 'undefined'){
if(x==null)
在 JavaScript 中是一个不好的想法。使用 "=="
进行判断 - 它可能会导致意外的类型转换,并且 CoffeeScript 无法读取,
决不要在条件判断中使用 "==" 或 "!="!
if(x)
更好一些,但要小心处理 0 和 ""。它们将被视为false,而不是等于方法"!= null"
是true。
请查看JavaScript最佳实践。
==
比较null
是捕获null
和undefined
的标准方法。在这种特定情况下,使用==
进行类型强制转换不会存在风险,事实上正在利用它来同时捕获null
和undefined
。请在决定回答已经在多年前得到令人满意的解决方案的问题之前,花更多时间学习这门语言,以免提供错误和误导性的答案。 - temporary_user_name==
来进行比较,除了== null
这种情况,因为它很简洁。 - Константин Ван最简单的答案:
if(!EmpName){
// DO SOMETHING
};
0
或''
之类的假值进行操作,而我们只想针对nullish
/undefined
值进行操作。 - Tzahi Leh