在使用js的时候总是出现令人迷惑的真假值,记住下面的模式以后就可以更清晰的认识它们了。
在JavaScript中,Truthy(真值)指的是在Boolean上下文中转换后的值为真的值。所有值都是真值,除非它们被定义为 falsy (即, 除了false,0,“”,null,undefined和NaN 外)。
JavaScript中的真值示例如下(将被转换为true类型,if 后的代码段将被执行):
if (true) if ({}) if ([]) if (42) if ("foo") if (new Date()) if (-42) if (3.14)a if (-3.14) if (Infinity) if (-Infinity)
falsy(假值)是在 Boolean 上下文中已认定可转换为‘假‘的值.
JavaScript 在需要用到布尔类型值的上下文中使用强制类型转换(Type Conversion )将值转换为布尔值,比如:在条件语句或者循环语句中
JavaScript中falsy值的例子 (通过 if 代码段将falsy值转换为false):
if (false) if (null) if (undefined) if (0) if (NaN) if ('') if ("") if (document.all)
当然这里有个漂亮的javascript 真值表,看起来更加直观