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 巧妙获取剪贴板数据 Excel数据的粘贴
Jul 09 Javascript
javascript 节点排序 2
Jan 31 Javascript
jquery zTree异步加载简单实例分享
Feb 05 Javascript
jquery处理json数据实例分析
Jun 03 Javascript
浅谈JavaScript正则表达式分组匹配
Apr 10 Javascript
JavaScript绑定事件监听函数的通用方法
May 14 Javascript
Node.js实现兼容IE789的文件上传进度条
Sep 02 Javascript
JS绘制微信小程序画布时钟
Dec 24 Javascript
javascript 单例模式详解及简单实例
Feb 14 Javascript
node.js入门学习之url模块
Feb 25 Javascript
js实现幻灯片轮播图
Aug 14 Javascript
JS前端使用Canvas快速实现手势解锁特效
Sep 23 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
农民和部队如何穿矿
2020/03/04 星际争霸
PHP动态分页函数,PHP开发分页必备啦
2011/11/07 PHP
PHP进程同步代码实例
2015/02/12 PHP
php实现将字符串按照指定距离进行分割的方法
2015/03/14 PHP
PHP微信开发之二维码生成类
2015/06/26 PHP
PHP编程实现的TCP服务端和客户端功能示例
2018/04/13 PHP
innertext , insertadjacentelement , insertadjacenthtml , insertadjacenttext 等区别
2007/06/29 Javascript
JS获取dom 对象 ajax操作 读写cookie函数
2009/11/18 Javascript
JQuery触发radio或checkbox的change事件
2012/12/18 Javascript
jquery遍历之parent()和parents()的区别及parentsUntil()方法详解
2013/12/02 Javascript
JS获取节点的兄弟,父级,子级元素的方法
2014/01/09 Javascript
Javascript获取当前时间函数和时间操作小结
2014/10/01 Javascript
在Docker快速部署Node.js应用的详细步骤
2016/09/02 Javascript
AngularJS中一般函数参数传递用法分析
2016/11/22 Javascript
Bootstrap框架建立树形菜单(Tree)的实例代码
2017/10/30 Javascript
echarts学习笔记之图表自适应问题详解
2017/11/22 Javascript
webpack将js打包后的map文件详解
2018/02/22 Javascript
JQuery样式操作、click事件以及索引值-选项卡应用示例
2019/05/14 jQuery
基于nodejs的微信JS-SDK简单应用实现
2019/05/21 NodeJs
详解Vue中组件传值的多重实现方式
2019/08/16 Javascript
浅谈Vue SSR中的Bundle的具有使用
2019/11/21 Javascript
vue项目配置同一局域网可使用ip访问的操作
2020/10/23 Javascript
python连接池实现示例程序
2013/11/26 Python
Python实现的knn算法示例
2018/06/14 Python
python 地图经纬度转换、纠偏的实例代码
2018/08/06 Python
解决python中 f.write写入中文出错的问题
2018/10/31 Python
浅析python 中大括号中括号小括号的区分
2019/07/29 Python
python3文件复制、延迟文件复制任务的实现方法
2019/09/02 Python
Python作用域与名字空间原理详解
2020/03/21 Python
写一个函数返回1+2+3+…+n的值(假定结果不会超过长整型变量的范围)
2014/09/05 面试题
个人实用的自我评价范文
2013/11/23 职场文书
班主任经验交流会主持词
2014/04/01 职场文书
遗嘱格式范本
2015/08/07 职场文书
为什么你写的height:100%不起作用
2021/05/10 HTML / CSS
MySQL系列之开篇 MySQL关系型数据库基础概念
2021/07/02 MySQL
Java实现聊天机器人完善版
2021/07/04 Java/Android