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 禁用浏览器的后退功能的简单方法
Dec 10 Javascript
学习ExtJS Panel常用方法
Oct 07 Javascript
jQuery AnythingSlider滑动效果插件
Feb 07 Javascript
Javascript中引用示例介绍
Feb 21 Javascript
详解JavaScript对W3C DOM模版的支持情况
Jun 16 Javascript
基于jquery实现左右按钮点击的图片切换效果
Jan 27 Javascript
分享有关jQuery中animate、slide、fade等动画的连续触发、滞后反复执行的bug
Jan 10 Javascript
使用Web Uploader实现多文件上传
Jun 08 Javascript
使用pm2自动化部署node项目的方法步骤
Jan 28 Javascript
使用vue脚手架(vue-cli)搭建一个项目详解
May 09 Javascript
el-form 多层级表单的实现示例
Sep 10 Javascript
html5以及jQuery实现本地图片上传前的预览代码实例讲解
Mar 01 jQuery
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
如何使用脚本模仿登陆过程
2006/11/22 PHP
两个强悍的php 图像处理类1
2009/06/15 PHP
php多维数组去掉重复值示例分享
2014/03/02 PHP
php实现文件下载简单示例(代码实现文件下载)
2014/03/10 PHP
PHP函数in_array()使用详解
2014/08/20 PHP
php中ob函数缓冲机制深入理解
2015/08/03 PHP
php实现中文转数字
2016/02/18 PHP
ThinkPHP框架实现的邮箱激活功能示例
2018/06/15 PHP
JavaScript中各种编码解码函数的区别和注意事项
2010/08/19 Javascript
使用jQuery内容过滤选择器选择元素实例讲解
2013/04/18 Javascript
移动节点的jquery代码
2014/01/13 Javascript
jquery实现表单验证并阻止非法提交
2015/07/09 Javascript
第一章之初识Bootstrap
2016/04/25 Javascript
js自调用匿名函数的三种写法(推荐)
2016/08/19 Javascript
canvas绘制万花筒效果(代码分享)
2017/01/20 Javascript
D3.js中强制异步文件读取同步的几种方法
2017/02/06 Javascript
canvas实现环形进度条效果
2017/03/23 Javascript
详解SPA中前端路由基本原理与实现方式
2018/09/12 Javascript
JavaScript实现轮播图特效
2020/04/10 Javascript
[51:39]DOTA2-DPC中国联赛 正赛 Magma vs LBZS BO3 第二场 2月7日
2021/03/11 DOTA
Python多线程编程(八):使用Event实现线程间通信
2015/04/05 Python
Mac 上切换Python多版本
2017/06/17 Python
Python列表的切片实例讲解
2019/08/20 Python
详解Python3中的 input() 函数
2020/03/18 Python
Pytorch 使用opnecv读入图像由HWC转为BCHW格式方式
2020/06/02 Python
PyCharm 2020.1版安装破解注册码永久激活(激活到2089年)
2020/09/24 Python
CSS3中的transform属性进行2D和3D变换的基本用法
2016/05/12 HTML / CSS
AmazeUI 加载进度条的实现示例
2020/08/20 HTML / CSS
澳大利亚最好的在线时尚精品店:Princess Polly
2018/01/03 全球购物
九年级语文教学反思
2014/02/04 职场文书
中学劳技课教师的自我评价
2014/02/05 职场文书
小学生元旦感言
2014/02/26 职场文书
副科竞争上岗演讲稿
2014/05/12 职场文书
2015年会计个人工作总结
2015/04/02 职场文书
MySql新手入门的基本操作汇总
2021/05/13 MySQL
MySql 8.0及对应驱动包匹配的注意点说明
2021/06/23 MySQL