类型检查vs空检查
Typeof check vs null check
我学会了像这样检查Javascript中的变量:
function x(variable){
if(typeof variable !== "undefined" && variable !== null)...
}
一位新同事现在说这样做更容易、更好:
function x(variable){
if(variable != null)
}
这真的一样吗?这是怎么做到的?
谢谢
Null和undefined是JavaScript中的两种基本数据类型。
来自Mozilla MDN的示例:
var x;
if (x === undefined) {
// these statements execute
}
else {
// these statements do not execute
}
这里必须使用严格相等运算符而不是标准相等运算符,因为x == undefined
也检查x是否为空,而严格相等不检查。null
不等于undefined
function x(variable){
if(variable != null) // variable would be both null and undefined for comparison
}
我认为上面的例子是有效的,因为你没有使用严格的比较。所以简而言之,你的两个例子不一样,但可以给出相同的结果。这完全取决于您的逻辑要求是否是严格的比较。
function x(variable){
if(typeof variable !== "undefined" && variable !== null)...
}
将检查变量is是否存在或是否已声明,如果存在则不为空。如果你不确定变量的声明,这是一个很好的方法。
function x(variable){
if(variable != null)
}
将检查变量是否为空。只有当您确定变量在第一个位置声明时,这才有用。
额外,
return value === null || value === undefined;
上面的表示null或undefined。
希望对你有帮助。
干杯!
唯一的区别是第一个可以安全地用于检查全局变量
> foo // -> ReferenceError
> foo != null // -> ReferenceError
> typeof foo !== 'undefined' && foo !== null // -> false
但是在你的例子中,这并不重要,因为空函数参数总是undefined
相关文章:
- 为什么不't Javascript对我的输入值进行了一些重新检查
- setInteval vs setTimeout
- $(this).prop('property') vs. this.property
- 在单击任何位置时隐藏元素,而不检查每次DOM单击
- 如何检查管道中未定义的项目
- 主干-不管怎样,检查事件以前是否绑定过
- 使用javascript检查多个输入值,并在1次检查中标记多个输入框
- 递归使用 eval() 是检查程序执行的好方法吗?
- 检查onsubmit doenst work jquery contactform上的函数
- JavaScript 检查隐藏字段中的值并将其设置为隐藏字段值
- API密钥使用和检查示例
- 如何让程序检查所选单词中是否有按键
- JS:检查URL中的参数,然后迭代一个参数为var的函数
- 用于检查数组中是否存在元素的javascript自定义方法
- 如何检查字符串的一部分与数组匹配
- 已检查 = “已检查” vs 已检查 = true
- 使用javascript Truthy和Falsy Value VS'检查If语句是否为true或false==
- 类型检查vs空检查
- 使用typeof vs===检查未声明的变量会产生不同的结果
- 检查Facebook登录状态:客户端vs服务器端