js中的短路与、短路或中的空字符串和 undefined

js中的短路与、短路或中的空字符串和 undefined

写在前面:

  1. 在js中,|| 和 && 不保证返回布尔值
  2. 可以转化为 false 的表达式有:null、NaN、0、空字符串、undefined。就是说你用 if 条件判断的话,它们都是 false,不论在哪里

举个栗子

  • 在 && 中

    console.log(('' && undefined));  //空字符串
    console.log((undefined && ''));  //undefined
    console.log(('' && true));  //空字符串
    console.log(('' && false));  //空字符串
    console.log((undefined && true));  //undefined
    //不知道你发现没有,其实,空字符串和undefined一直扮演着false的角色,只是输出的时候,不输出false,而是输出它本身
    
  • 在 || 中

    console.log(('' || undefined));  //undefined
    console.log((undefined || ''));  //空字符串
    console.log(('' || true));  //true
    console.log(('' || false));  //false
    console.log((undefined || true));  //true
    console.log((undefined || true));  //true
    //与上面同理
    
  • 另外三个

    console.log((NaN || false));  //false
    console.log((null || false));  //false
    console.log((0 || false));  //false
    //与上面同理
    

结论

它们就是 false,只不过空字符串和undefined有一点点特殊,它们输出的时候输出它们自身,其它都是输出 false

posted @ 2022-06-23 23:58  朱在春  阅读(109)  评论(0编辑  收藏  举报