您的位置:首页 > Web前端 > JavaScript

js中falsy值的相等性

2014-02-11 12:57 134 查看
falsy值并不完全彼此相等

js中falsy值: '', 0, -0, NaN, false, null, undefined.

所有这些值取反(通过!运算符)都是true. 因此一直以为使用 '==' 判断时它们会彼此相等,今天才发现不是这样.使用 '==' 判断时:

1. NaN和任何值都不等,包括它本身,即NaN == NaN(false).

2. 除NaN外,其它值都与自身相等,如null==null(true), 0与0(true).

3.除自身外,null和undefined只与彼此相等;

4.除自身外,-0,0,'',false 彼此相等;

因此,在程序中,如果我们需要针对所有的falsy值,应判断!value == true;若只针对null和undefined,则使用 value == null; 若只针对某个特定falsy值,则要用全等'==='来判断,如value === 0。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: