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。
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。
相关文章推荐
- 【js学习笔记-020】-- 转换和相等性
- js中相等性问题
- 你的编程语言可以这样做吗?(map/reduce的js示范) (转)
- 通过JS将复选框做成单选框一样,选中还可以取消
- JS精美日历时间控件
- Android 里js 与java相互调用
- 一个js的webgame引擎
- ajax跨域和js跨域解决方案总结
- Asp.Net后置代码中输入JS提示语句(背景不会变白)
- js 删除 数组重复
- node.js express中使用jquery模板
- Node.JS——NodeJS引用路径的小问题
- js之关键字
- js读写(删除)Cookie实例详解
- JS 去前后空格大全(IE9亲测)
- JS&CSS文件请求合并及压缩处理研究(四)
- Jquery和js实现cookie操作手机浮层广告;附加:js获取、添加、删除cookie
- js调用iframe实现打印页面内容的方法
- js数组依据下标删除元素
- 在自定义的js验证规则中调用magento的VarienForm方法验证表单