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 相关文章推荐
分享十五个最佳jQuery 幻灯插件和教程
Mar 27 Javascript
客户端js判断文件类型和文件大小即限制上传大小
Nov 20 Javascript
js鼠标悬浮出现遮罩层的方法
Jan 28 Javascript
JavaScript正则表达式之multiline属性的应用
Jun 16 Javascript
纯js模拟div层弹性运动的方法
Jul 27 Javascript
js中string和number类型互转换技巧(分享)
Nov 28 Javascript
利用transition实现文字上下抖动的效果
Jan 21 Javascript
关于前后端json数据的发送与接收详解
Jul 30 Javascript
浅谈在vue项目中如何定义全局变量和全局函数
Oct 24 Javascript
vue.js响应式原理解析与实现
Jun 22 Javascript
JS集合set类的实现与使用方法示例
Feb 01 Javascript
vue项目前端错误收集之sentry教程详解
May 27 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/07/16 PHP
PHP 变量定义和变量替换的方法
2009/07/30 PHP
修改ThinkPHP缓存为Memcache的方法
2014/06/25 PHP
PHP使用递归生成文章树
2015/04/21 PHP
详解Yii2.0 rules验证规则集合
2017/03/21 PHP
使用jquery实现select添加实现后台权限添加的效果
2011/05/28 Javascript
html页面显示年月日时分秒和星期几的两种方式
2013/08/20 Javascript
有关json_decode乱码及NULL的问题
2015/10/13 Javascript
BootStrap3中模态对话框的使用
2017/01/06 Javascript
node.js与C语言 实现遍历文件夹下最大的文件,并输出路径,大小
2017/01/20 Javascript
浅谈js中的变量名和函数名重名
2017/02/13 Javascript
vue.js vue-router如何实现无效路由(404)的友好提示
2017/12/20 Javascript
vue.js轮播图组件使用方法详解
2018/07/03 Javascript
浅析js中mvvm模式实现的原理
2018/10/06 Javascript
angular中两种表单的区别(响应式和模板驱动表单)
2018/12/06 Javascript
通过JavaScript下载文件到本地的方法(单文件)
2019/03/17 Javascript
ES6 新增的创建数组的方法(小结)
2019/08/01 Javascript
python 获取文件列表(或是目录例表)
2009/03/25 Python
Python中使用select模块实现非阻塞的IO
2015/02/03 Python
Python使用functools模块中的partial函数生成偏函数
2016/07/02 Python
Python 遍历列表里面序号和值的方法(三种)
2017/02/17 Python
Python编写Windows Service服务程序
2018/01/04 Python
python微信跳一跳系列之棋子定位颜色识别
2018/02/26 Python
Python使用re模块实现信息筛选的方法
2018/04/29 Python
python读取有密码的zip压缩文件实例
2019/02/08 Python
python ddt数据驱动最简实例代码
2019/02/22 Python
Python 实现文件读写、坐标寻址、查找替换功能
2019/09/11 Python
Scrapy模拟登录赶集网的实现代码
2020/07/07 Python
Python基于httpx模块实现发送请求
2020/07/07 Python
浅析CSS3中鲜为人知的属性:-webkit-tap-highlight-color
2017/01/12 HTML / CSS
HTML5去掉输入框type为number时的上下箭头的实现方法
2020/01/03 HTML / CSS
澳洲的服装老品牌:SABA
2018/02/06 全球购物
Shell如何接收变量输入
2016/08/06 面试题
幼儿园大班区域活动总结
2014/07/09 职场文书
2016年度员工工作表现评语
2015/12/02 职场文书
Mysql事务索引知识汇总
2022/03/17 MySQL