因为存在强制类型转换,JavaScript中的每个值都可以被当作true或false处理,这会导致一些有趣的现象。
假值
| 值 | 描述 |
| var highScore=false; |
传统的布尔值false |
| var highScore=0; | 数字0 |
| var highScore=' '; | 空字符串 |
| var highScore=10/'score'; | NaN |
| var highScore; | 没有被赋值的变量 |
真值
| 值 | 描述 |
| var highScore=true; | 传统的布尔值true |
| var highScore=1; | 非0数字 |
| var highScore='carrot'; | 有内容的字符串 |
| var highScore=10/5; | 数字运算(结果非0) |
| var highScore='true'; | 字符串true |
| var highScore='0'; | 字符串0 |
| var highScore='false'; | 字符串false |