Javascript - 逻辑与(&&)和逻辑非(||)

1、比较的两者都是boolean
2、比较的两者是其他类型

总结:逻辑与(&&)和逻辑非(||),当运算到某一个变量就得出最终结果之后,就返回哪个变量。

比较的两者都是boolean

//逻辑与
console.log( true && true );  //true
console.log( true && false );  //false
console.log( false && true );  //false
console.log( false && false );  //false

//逻辑或
console.log( true || true );  //true
console.log( true || false );  //true
console.log( false || true );  //true
console.log( false || false );  //false

总结:

  • 逻辑与,两者都为true,结果才是true。
  • 逻辑或,只要有一者为true,结果就是true。

这里说一个概念 - 短路
逻辑与:当前者的值为false的时候,其实就不执行后者;因为结果已经是false
逻辑或:当前者的值为true的时候,其实就不执行后者;因为结果已经是true

简单示例:

//逻辑与
console.log( true && alert("halo1") );  //会弹出提示框
console.log( false && alert("halo2") );  //不会弹出提示框

//逻辑或
console.log( true || alert("halo3") );  //不会弹出提示框
console.log( false || alert("halo4") );  //会弹出提示框

比较的两者是其他类型

以下内容会被当成false处理:"" , false , 0 , null , undefined , NaN

//逻辑与
console.log("name" && "age");  //"age"
console.log(false && "name");  //false

//逻辑或
console.log("name" || "age");  //"name"
console.log(true || "age");  //true

通用的总结:

  • a && b,当a为true的时候,这时候需要判断b是否为true,所以不管b是true是false,都返回b;
    当a为false的时候,无论b是true是false结果都是false,所以返回a;

  • a || b,当a为true的时候,无论b是true是false结果都是true,所以返回a;
    当a为false的时候,时候需要判断b是否为true,所以不管b是true是false,都返回b;

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容