文章目录

  1. 1. 不要使用null来检测是否传入某个参数
  2. 2. 不要用null来检测一个未初始化的变量
  3. 3. 参考文献

我们在实际开发中会遇到一些空比较的使用,但是有几个值得注意的地方。

不要使用null来检测是否传入某个参数

var foo = "LiangGzone";
//糟糕的用法
function foo(foo){
    if(foo != null){
        console.log("not null");
    }
}
//好的用法
function foo(foo){
    if(foo){//类似于if(foo==null||foo==""||foo==undefined){  
        console.log("not null");
    }
}

不要用null来检测一个未初始化的变量

如果需要检测null,则直接使用恒等运算符(===)或非恒等运算符(!==)。为什么这样做呢,
因为在JavaScript中还存在undefined这个关键字。它与null用途不一样,undefined用于定义未初始化变量,而有趣的是,null==undefined。

var foo;
//糟糕的用法
if(foo!=null){
    //核心代码
}
//好的用法
if(foo!==null){
    //核心代码
}
我们来看下以下代码,你会发现,只有在null===undefined。全等的时候,null才不同于undefined。
var id;
console.log(id);    // undefined
console.log(typeof id === "undefined");     // true
console.log(id == null);    // true
console.log(id === null);   // false

参考文献

(书)「编写可维护的JavaScript」(Nicholas C. Zakas)

(完)

微信公众号

文章目录

  1. 1. 不要使用null来检测是否传入某个参数
  2. 2. 不要用null来检测一个未初始化的变量
  3. 3. 参考文献