我们在初学JS时,总会对一些语法很疑惑,比如
function func(){ console.log("func执行") } if(a){ func() }
如果我们把a的定义忘了,结果却和我们想要的一致,a的值会被置为为undefined,然而在JS中 undefined是属于逻辑假,即false,这就是JS特殊的真假值机制,这在严格(强)数据类型的语言如Java是不可想象的,后者会报编译错误:未声明的变量。
现在,最新规范把它称为truthy和Falsy,详见:
https://developer.mozilla.org/zh-CN/docs/Glossary/Truthy
https://developer.mozilla.org/zh-CN/docs/Glossary/Falsy