JavaScript中奇葩的假值示例应用


Posted in Javascript onMarch 11, 2014

通常在以下语句结构中需要判断真假

if分支语句
while循环语句
for里的第二个语句


if (boo) { 
// do something 
} while (boo) { 
// do something 
}

JavaScript中有6个值为“假”,这六个值是

false
null
undefined
0
'' (空字符串)
NaN

这里面false本身是布尔类型,其它5个则不是。

除了这6个外,其它均为“真” ,包括对象、数组、正则、函数等。注意 '0'、'null'、'false'、{}、[]也都是真值 。

虽然这六个值都为“假”,它们之间并非都相等

console.log( false == null ) // false 
console.log( false == undefined ) // false 
console.log( false == 0 ) // true 
console.log( false == '' ) // true 
console.log( false == NaN ) // false console.log( null == undefined ) // true 
console.log( null == 0 ) // false 
console.log( null == '' ) // false 
console.log( null == NaN ) // false 
console.log( undefined == 0) // false 
console.log( undefined == '') // false 
console.log( undefined == NaN) // false 
console.log( 0 == '' ) // true 
console.log( 0 == NaN ) // false

对于“==”,以上得出下列结论

false 除了和自身比较为true外,和0,'' 也为true
null只和undefined比较时为true, 反过来undefined也仅和null比较为true,没有第二个
0除了和false比较为true,还有一个空字符串 ''
空字符串''出了和false比较为true,还有一个数字0

Javascript 相关文章推荐
(currentStyle)javascript为何有时用style得不到已设定的CSS的属性
Aug 15 Javascript
根据json字符串生成Html的一种方式
Jan 09 Javascript
jQuery+css实现百度百科的页面导航效果
Dec 16 Javascript
详细介绍jQuery.outerWidth() 函数具体用法
Jul 20 Javascript
JS实现添加,替换,删除节点元素的方法
Jun 30 Javascript
Bootstrap表单布局
Jul 19 Javascript
超实用的javascript时间处理总结
Aug 16 Javascript
详解webpack自动生成html页面
Jun 29 Javascript
Vim快速合并行及vim 将文件所有行合并到一行
Nov 27 Javascript
JS中数组与对象的遍历方法实例小结
Aug 14 Javascript
原生js生成图片验证码
Oct 11 Javascript
代码块高亮可复制显示js插件highlight.js+clipboard.js整合
Feb 15 Javascript
Javascript加载速度慢的解决方案
Mar 11 #Javascript
js解析json读取List中的实体对象示例
Mar 11 #Javascript
JS图片无缝、平滑滚动代码
Mar 11 #Javascript
js 针对html DOM元素操作等经验累积
Mar 11 #Javascript
表单提交前触发函数返回true表单才会提交
Mar 11 #Javascript
php析构函数的具体用法小结
Mar 11 #Javascript
ie浏览器使用js导出网页到excel并打印
Mar 11 #Javascript
You might like
要会喝咖啡也要会知道咖啡豆
2021/03/03 咖啡文化
在PHP中运行Linux命令并启动SSH服务的例子
2014/06/12 PHP
PHP实现大数(浮点数)取余的方法
2017/02/18 PHP
破除网页鼠标右键被禁用的绝招大全
2006/12/27 Javascript
浅析jQuery的链式调用之each函数
2010/12/03 Javascript
文字溢出实现溢出的部分再放入一个新生成的div中具体代码
2013/05/17 Javascript
js 窗口抖动示例
2013/09/04 Javascript
jquery实现盒子下拉效果示例代码
2013/09/12 Javascript
js获取某元素的class里面的css属性值代码
2014/01/16 Javascript
jquery 取子节点及当前节点属性值
2014/07/25 Javascript
理解Javascript文件动态加载
2016/01/29 Javascript
vue.js如何更改默认端口号8080为指定端口的方法
2017/07/14 Javascript
JavaScript实现AOP详解(面向切面编程,装饰者模式)
2017/12/19 Javascript
使用vue-cli编写vue插件的方法
2018/02/26 Javascript
解决angular2 获取到的数据无法实时更新的问题
2018/08/31 Javascript
用vue-cli开发vue时的代理设置方法
2018/09/20 Javascript
详解使用webpack+electron+reactJs开发windows桌面应用
2019/02/01 Javascript
浅谈Vue使用Elementui修改默认的最快方法
2020/12/05 Vue.js
Python中暂存上传图片的方法
2015/02/18 Python
Python挑选文件夹里宽大于300图片的方法
2015/03/05 Python
Python实现把数字转换成中文
2015/06/29 Python
Python连接MySQL并使用fetchall()方法过滤特殊字符
2016/03/13 Python
python正则表达式之作业计算器
2016/03/18 Python
Python selenium抓取微博内容的示例代码
2018/05/17 Python
8种常用的Python工具
2020/08/05 Python
CSS3 border-image详解、应用及jQuery插件
2011/08/29 HTML / CSS
英国人最爱的饰品网站:Accessorize
2016/08/22 全球购物
Habitat家居英国官方网站:沙发、家具、照明、厨房和户外
2019/12/12 全球购物
Oracle中delete,truncate和drop的区别
2016/05/05 面试题
大学生职业生涯规划范文
2013/12/31 职场文书
金融与证券专业求职信
2014/06/22 职场文书
建筑工程技术专业求职信
2014/07/16 职场文书
学生自我评语
2015/01/04 职场文书
交通事故案件代理词
2015/05/23 职场文书
2016年先进教师个人事迹材料
2016/02/26 职场文书
详解CSS不定宽溢出文本适配滚动
2021/05/24 HTML / CSS