逻辑非
非操作符由叹号 ! 来表示,可以应用于ECMAScript中任何类型的数据,也就是无论对任何类型的数据,都会返回一个布尔值
对任何对象,返回false
任意非空字符串,返回false
空字符串,返回true
任意非0数字,返回false
0,返回true
null、undefined、NaN,返回true
同时使用两个非操作符时,与使用Boolean()函数一样
逻辑与
与操作符由 && 来表示,同样可以应用于ECMAScript中的任何类型的数据,与操作是短路操作,如果第一个操作数可以决定结果,就不会再对第二个操作数进行求值
第一个操作数是对象,返回第二个操作数
第二个操作数是对象,只有第一个操作数为true的时候,才会返回该对象
如果两个操作数都是对象,返回第二个操作数
如果有一个操作数是null,返回null
如果有一个操作数是undefined,返回undefined
如果有一个操作数是NaN,返回NaN
逻辑或
或操作符由 || 来表示,同样可以应用于ECMAScript中的任何类型的数据,和与操作符一样,或操作符同样是短路操作,如果第一个操作数可以决定结果,不会再对第二个操作数进行求值
第一个操作数是对象,返回第一个对象
第一个操作数是false,返回第二个操作数
如果两个操作数都是对象,则返回第一个对象