上QQ阅读APP看书,第一时间看更新
1.3.3 真值和假值
在JavaScript中,true和false有些复杂。在大多数编程语言中,布尔值true和false仅仅表示true/false结果。在JavaScript中,如Packt这样的字符串值,也可以看作true。
下表能帮助我们更好地理解true和false在JavaScript中是如何转换的。
我们来看一些代码,用输出来验证上面的总结。
function testTruthy(val) { return val ? console.log('truthy') : console.log('falsy'); } testTruthy(true); // true testTruthy(false); // false testTruthy(new Boolean(false)); // true (对象始终为 true) testTruthy(''); // false testTruthy('Packt'); // true testTruthy(new String('')); // true (对象始终为 true) testTruthy(1); // true testTruthy(-1); // true testTruthy(NaN); // false testTruthy(new Number(NaN)); // true (对象始终为 true) testTruthy({}); // true (对象始终为 true) var obj = { name: 'John' }; testTruthy(obj); // true testTruthy(obj.name); // true testTruthy(obj.age); // age (属性不存在)