JS中&&与||

JavaScript中逻辑与&&和逻辑或||可以用于任何数据类型,而不仅是布尔值。

几乎所有语言中||和&&都遵循“短路”原理, 如&&中第一个表达式为假就不会去处理第二个表达式,而||正好相反。js同样也遵循上述原则:

  • 当逻辑或||时,找到为true的分项就停止处理,并返回该分项的值,否则执行完,并返回最后分项的值。
  • 当逻辑与&&时,找到为false的分项就停止处理,并返回该分项的值。
var a = "" || null || 3 || 4; //3
var b = 3 && null && 4 && ""; //null

var c = (3 || null ) && 5 && 6; //6
var d = (3 && "") || 15 || null; //15

 

js中,以下值被当作假(false):

  • false
  • null
  • undefined
  • 空字符串''
  • 数字0
  • 数字NaN

其他所有值都被当做真,包括true、字符串"false",以及所有的对象。

posted on 2018-02-27 15:25  木杉彬彬彬  阅读(149)  评论(0编辑  收藏  举报