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 绑定事件时传递参数的实现方法
Oct 13 Javascript
javascript快速排序算法详解
Sep 17 Javascript
纯js实现重发验证码按钮倒数功能
Apr 21 Javascript
jquery简单实现图片切换效果的方法
May 12 Javascript
AngularJS控制器controller给模型数据赋初始值的方法
Jan 04 Javascript
Javascript实现异步编程的过程
Jun 18 Javascript
Vue如何实现响应式系统
Jul 11 Javascript
jQuery实现基本淡入淡出效果的方法详解
Sep 05 jQuery
Vue使用mixin分发组件的可复用功能
Sep 01 Javascript
vue-devtools的安装和使用步骤详解
Oct 17 Javascript
Vuex实现购物车小功能
Aug 17 Javascript
JavaScript对象访问器Getter及Setter原理解析
Dec 08 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加密解密函数代码
2013/06/19 PHP
PHP把小数转成整数3种方法
2014/06/30 PHP
隐性调用php程序的方法
2015/06/13 PHP
PHP对象实例化单例方法
2017/01/19 PHP
php批量转换文件夹下所有文件编码的函数类
2017/08/06 PHP
PHP实现读取文件夹及批量重命名文件操作示例
2019/04/15 PHP
javascript新手语法小结
2008/06/15 Javascript
jquery制作居中遮罩层效果分享
2014/02/21 Javascript
jQuery根据表单name获取值的方法
2016/05/24 Javascript
使用Bootstrap typeahead插件实现搜索框自动补全的方法
2016/07/07 Javascript
基于JavaScript实现跳转提示页面
2016/09/24 Javascript
利用Node.js+Koa框架实现前后端交互的方法
2017/02/27 Javascript
jQuery validate 验证radio实例
2017/03/01 Javascript
underscore之Chaining_动力节点Java学院整理
2017/07/10 Javascript
jQuery绑定事件方法及区别(bind,click,on,live,one)
2017/08/14 jQuery
node.js实现微信JS-API封装接口的示例代码
2017/09/06 Javascript
Angular自定义组件实现数据双向数据绑定的实例
2017/12/11 Javascript
React组件refs的使用详解
2018/02/09 Javascript
微信小程序自定义头部导航栏和导航栏背景图片 navigationStyle问题
2019/07/26 Javascript
ES6之Proxy的get方法详解
2019/10/11 Javascript
JS求解两数之和算法详解
2020/04/28 Javascript
python根据京东商品url获取产品价格
2015/08/09 Python
实现python版本的按任意键继续/退出
2016/09/26 Python
Python实现矩阵转置的方法分析
2017/11/24 Python
pandas表连接 索引上的合并方法
2018/06/08 Python
对python while循环和双重循环的实例详解
2019/08/23 Python
使用matlab或python将txt文件转为excel表格
2019/11/01 Python
python实现超市商品销售管理系统
2019/11/22 Python
Python关于__name__属性的含义和作用详解
2020/02/19 Python
Python爬虫开发与项目实战
2020/12/16 Python
linux面试题参考答案(3)
2012/09/13 面试题
Solaris操作系统的线程机制
2012/12/23 面试题
应届毕业生自荐书
2014/06/18 职场文书
学会用Python实现滑雪小游戏,再也不用去北海道啦
2021/05/20 Python
CSS的calc函数用法小结
2022/06/25 HTML / CSS