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 相关文章推荐
js 单引号 传递方法
Jun 22 Javascript
javascript new后的constructor属性
Aug 05 Javascript
jquery 插件学习(六)
Aug 06 Javascript
JavaScript中的Truthy和Falsy介绍
Jan 01 Javascript
基于javascript实现图片懒加载
Jan 05 Javascript
细说webpack源码之compile流程-rules参数处理技巧(2)
Dec 26 Javascript
vue中如何动态绑定图片,vue中通过data返回图片路径的方法
Feb 07 Javascript
解决angular2 获取到的数据无法实时更新的问题
Aug 31 Javascript
详解Vue.js使用Swiper.js在iOS
Sep 10 Javascript
基于node简单实现RSA加解密的方法步骤
Mar 21 Javascript
Openlayers绘制聚合标注
Sep 28 Javascript
小程序组件传值和引入sass的方法(使用vant Weapp组件库)
Nov 24 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
常用的php对象类型判断
2008/08/27 PHP
PHP+MySQL之Insert Into数据插入用法分析
2015/09/27 PHP
php实现用户登陆简单实例
2017/04/04 PHP
php统计数组不同元素的个数的实例方法
2019/09/26 PHP
JS Range HTML文档/文字内容选中、库及应用介绍
2011/05/12 Javascript
js的onload事件及初始化按钮事件示例代码
2013/09/25 Javascript
页面定时刷新(1秒刷新一次)
2013/11/22 Javascript
Javascript设置对象的ReadOnly属性(示例代码)
2013/12/25 Javascript
JavaScript数据结构和算法之图和图算法
2015/02/11 Javascript
jQuery Tags Input Plugin(添加/删除标签插件)详解
2016/06/20 Javascript
js学习笔记之事件处理模型
2016/10/31 Javascript
jQuery使用eraser.js插件实现擦除、刮刮卡效果的方法【附eraser.js下载】
2017/04/28 jQuery
JS解决position:sticky的兼容性问题的方法
2017/10/17 Javascript
jQuery.Sumoselect插件实现下拉复选框效果
2017/11/09 jQuery
vue 实现搜索的结果页面支持全选与取消全选功能
2019/05/10 Javascript
微信小程序云开发实现云数据库读写权限
2019/05/17 Javascript
vue源码nextTick使用及原理解析
2019/08/13 Javascript
vue把输入框的内容添加到页面的实例讲解
2019/11/11 Javascript
Vue在H5 项目中使用融云进行实时个人单聊通讯
2020/12/14 Vue.js
详解vite2.0配置学习(typescript版本)
2021/02/25 Javascript
[01:11:02]Secret vs Newbee 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
Python中time模块和datetime模块的用法示例
2016/02/28 Python
python自动重试第三方包retrying模块的方法
2018/04/24 Python
Python高级特性切片(Slice)操作详解
2018/09/27 Python
python接口自动化(十七)--Json 数据处理---一次爬坑记(详解)
2019/04/18 Python
使用Python创建简单的HTTP服务器的方法步骤
2019/04/26 Python
使用Python 自动生成 Word 文档的教程
2020/02/13 Python
解决python -m pip install --upgrade pip 升级不成功问题
2020/03/05 Python
通过Python pyecharts输出保存图片代码实例
2020/11/25 Python
个人工作表现评语
2014/04/30 职场文书
贷款承诺书范文
2014/05/19 职场文书
结婚保证书(卖身契)
2015/02/26 职场文书
2015教师个人师德工作总结
2015/10/23 职场文书
pytorch常用数据类型所占字节数对照表一览
2021/05/17 Python
MySQL数据库超时设置配置的方法实例
2021/10/15 MySQL
关于vue-router-link选择样式设置
2022/04/30 Vue.js