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实现的日期操作类DateTime函数代码
Mar 16 Javascript
datagrid框架的删除添加与修改
Apr 08 Javascript
关于JS管理作用域的问题
Apr 10 Javascript
在javascript中关于节点内容加强
Apr 11 Javascript
jsonp原理及使用
Oct 28 Javascript
js判断当前浏览器类型,判断IE浏览器方法
Jun 02 Javascript
超实用的javascript时间处理总结
Aug 16 Javascript
EasyUI修改DateBox和DateTimeBox的默认日期格式示例
Jan 18 Javascript
vue 文件目录结构详解
Nov 24 Javascript
利用node.js如何创建子进程详解
Dec 09 Javascript
在react-router4中进行代码拆分的方法(基于webpack)
Mar 08 Javascript
关于ES6尾调用优化的使用
Sep 11 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水印技术
2007/02/14 PHP
php提交表单时判断 if($_POST[submit])与 if(isset($_POST[submit])) 的区别
2011/02/08 PHP
详解PHP的Yii框架中日志的相关配置及使用
2015/12/08 PHP
php实现的http请求封装示例
2016/11/08 PHP
javascript GUID生成器实现代码
2009/10/31 Javascript
JavaScript去掉数组中的重复元素
2011/01/13 Javascript
JavaScript利用正则表达式去除日期中的“-”
2014/07/01 Javascript
JavaScript AJAX之惰性载入函数
2014/08/27 Javascript
Nodejs实现批量下载妹纸图
2015/05/28 NodeJs
SpringMVC返回json数据的三种方式
2015/12/10 Javascript
JavaScript 继承详解(五)
2016/10/11 Javascript
解析javascript图片懒加载与预加载的分析总结
2016/10/27 Javascript
利用Node.js+Koa框架实现前后端交互的方法
2017/02/27 Javascript
JS中的数组转变成JSON格式字符串的方法
2017/05/09 Javascript
vue.js学习之vue-cli定制脚手架详解
2017/07/02 Javascript
JavaScript无操作后屏保功能的实现方法
2017/07/04 Javascript
vue 数组和对象不能直接赋值情况和解决方法(推荐)
2017/10/25 Javascript
使用Node.js写一个代码生成器的方法步骤
2019/05/10 Javascript
微信小程序调用wx.getImageInfo遇到的坑解决
2020/05/31 Javascript
jquery实现简单拖拽效果
2020/07/20 jQuery
学习 Vue.js 遇到的那些坑
2021/02/02 Vue.js
python基础教程之简单入门说明(变量和控制语言使用方法)
2014/03/25 Python
利用python模拟sql语句对员工表格进行增删改查
2017/07/05 Python
MySQL适配器PyMySQL详解
2017/09/20 Python
python操作redis方法总结
2018/06/06 Python
对python3 中方法各种参数和返回值详解
2018/12/15 Python
基于numpy中的expand_dims函数用法
2019/12/18 Python
Python验证码截取识别代码实例
2020/05/16 Python
Python能做什么
2020/06/02 Python
python利用线程实现多任务
2020/09/18 Python
python基于exchange函数发送邮件过程详解
2020/11/06 Python
什么是规则表达式
2012/05/03 面试题
2014年电厂工作总结
2014/12/04 职场文书
物业保洁员岗位职责
2015/02/13 职场文书
OpenCV3.3+Python3.6实现图片高斯模糊
2021/05/18 Python
浅析python中特殊文件和特殊函数
2022/02/24 Python