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 相关文章推荐
javascript 全角转换实现代码
Jul 17 Javascript
使用dynatrace-ajax跟踪JavaScript的性能
Apr 12 Javascript
JS、CSS以及img对DOMContentLoaded事件的影响
Aug 12 Javascript
React快速入门教程
Jan 17 Javascript
jQuery实现的简单在线计算器功能
May 11 jQuery
基于angular实现三级联动的生日插件
May 12 Javascript
一个简易的js图片轮播效果
Jul 22 Javascript
Vue中使用clipboard实现复制功能
Sep 05 Javascript
Vue表单输入绑定的示例代码
Nov 01 Javascript
vue实现自定义多选按钮
Jul 16 Javascript
vue将data恢复到初始状态 && 重新渲染组件实例
Sep 04 Javascript
给原生html中添加水印遮罩层的实现示例
Apr 02 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 header示例代码(推荐)
2010/09/08 PHP
php关于array_multisort多维数组排序的使用说明
2011/01/04 PHP
PHP中time(),date(),mktime()区别介绍
2013/09/28 PHP
php jsonp单引号转义
2014/11/23 PHP
php支付宝APP支付功能
2020/07/29 PHP
jQuery学习笔记(4)--Jquery中获取table中某列值的具体思路
2013/04/10 Javascript
javascript实现跳转菜单的具体方法
2013/07/05 Javascript
使用jQuery在对象中缓存选择器的简单方法
2015/06/30 Javascript
javascript文件加载管理简单实现方法
2015/07/25 Javascript
基于jQuery实现网页打印功能
2015/12/01 Javascript
详谈表单格式化插件jquery.serializeJSON
2017/06/23 jQuery
vue实现点击图片放大效果
2017/08/15 Javascript
ReactJs实现树形结构的数据显示的组件的示例
2017/08/18 Javascript
webpack4.x开发环境配置详解
2018/08/04 Javascript
浅谈开发eslint规则
2018/10/01 Javascript
vue移动端屏幕适配详解
2019/04/30 Javascript
浅谈如何优雅处理JavaScript异步错误
2019/11/12 Javascript
js HTML DOM EventListener功能与用法实例分析
2020/04/27 Javascript
vue 实现超长文本截取,悬浮框提示
2020/07/29 Javascript
在vue中给后台接口传的值为数组的格式代码
2020/11/12 Javascript
[48:31]DOTA2-DPC中国联赛 正赛 Dynasty vs XG BO3 第一场 2月2日
2021/03/11 DOTA
python基础教程之python消息摘要算法使用示例
2014/02/10 Python
教你如何将 Sublime 3 打造成 Python/Django IDE开发利器
2014/07/04 Python
提升Python程序运行效率的6个方法
2015/03/31 Python
Python采用Django开发自己的博客系统
2020/09/29 Python
利用python实现简单的循环购物车功能示例代码
2017/07/05 Python
Python机器学习logistic回归代码解析
2018/01/17 Python
JAVA SWT事件四种写法实例解析
2020/06/05 Python
上海中网科技笔试题
2012/02/19 面试题
商务专员岗位职责
2013/11/23 职场文书
党员教师四风问题对照检查材料
2014/09/26 职场文书
2015年团委副书记工作总结
2015/07/23 职场文书
青年教师听课心得体会
2016/01/15 职场文书
《落花生》教学反思
2016/02/16 职场文书
vue的项目如何打包上线
2022/04/13 Vue.js
为什么MySQL8新特性会修改自增主键属性
2022/04/18 MySQL