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语句可以不以;结尾的烦恼
Mar 08 Javascript
IE8 兼容性问题(属性名区分大小写)
Jun 04 Javascript
关于跨站脚本攻击问题
Dec 22 Javascript
关于query Javascript CSS Selector engine
Apr 12 Javascript
Javascript日期格式化format函数的使用方法
Aug 30 Javascript
JS调用某段SQL语句的方法
Oct 20 Javascript
BootStrap实现带有增删改查功能的表格(DEMO详解)
Oct 26 Javascript
微信小程序中实现手指缩放图片的示例代码
Mar 13 Javascript
vue实现引入本地json的方法分析
Jul 12 Javascript
vue-element-admin 菜单标签失效的解决方式
Nov 12 Javascript
Vue中引入svg图标的两种方式
Jan 14 Vue.js
javascript数组includes、reduce的基本使用
Jul 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
IP攻击升级,程序改进以对付新的攻击
2010/11/23 PHP
PHP命名空间与自动加载机制的基础介绍
2019/08/25 PHP
jQuery EasyUI 中文API Layout(Tabs)
2010/04/27 Javascript
js设置文本框中焦点位置在最后的示例代码(简单实用)
2014/03/04 Javascript
webapp框架AngularUI的demo改造之路
2014/12/21 Javascript
JQuery中attr方法和removeAttr方法用法实例
2015/05/18 Javascript
跟我学习JScript的Bug与内存管理
2015/11/18 Javascript
Bootstrap每天必学之级联下拉菜单
2016/03/27 Javascript
原生js仿jquery animate动画效果
2016/07/13 Javascript
AngularJS控制器之间的数据共享及通信详解
2016/08/01 Javascript
JS实现字符串转驼峰格式的方法
2016/12/16 Javascript
实战node静态文件服务器的示例代码
2018/03/08 Javascript
Vue EventBus自定义组件事件传递
2018/06/25 Javascript
详解Node.js读写中文内容文件操作
2018/10/10 Javascript
JavaScript中concat复制数组方法浅析
2019/01/20 Javascript
nuxt踩坑之Vuex状态树的模块方式使用详解
2019/09/06 Javascript
如何区分vue中的v-show 与 v-if
2020/09/08 Javascript
vue-axios同时请求多个接口 等所有接口全部加载完成再处理操作
2020/11/09 Javascript
[03:07]完美世界DOTA2联赛PWL DAY10 决赛集锦
2020/11/11 DOTA
Python+django实现文件上传
2016/01/17 Python
mac安装scrapy并创建项目的实例讲解
2018/06/13 Python
Python装饰器模式定义与用法分析
2018/08/06 Python
python实现LBP方法提取图像纹理特征实现分类的步骤
2019/07/11 Python
提升Python效率之使用循环机制代替递归函数
2019/07/23 Python
python 并发编程 阻塞IO模型原理解析
2019/08/20 Python
Python序列对象与String类型内置方法详解
2019/10/22 Python
Django 允许局域网中的机器访问你的主机操作
2020/05/13 Python
如何用PyPy让你的Python代码运行得更快
2020/12/02 Python
HTML5 form标签之解放表单验证、增加文件上传、集成拖放的使用方法
2013/04/24 HTML / CSS
HTML5拖拉上传文件的简单实例
2017/01/11 HTML / CSS
中国电子产品批发商/跨境电商/外贸网:Sunsky-online
2020/04/20 全球购物
维德科技C#面试题笔试题
2015/12/09 面试题
德尔福集团DELPHI的笔试题
2012/02/22 面试题
应届电子商务毕业自荐书范文
2014/02/11 职场文书
MySQL官方导出工具mysqlpump的使用
2021/05/21 MySQL
Mysql排序的特性详情
2021/11/01 MySQL