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 相关文章推荐
网页自动跳转代码收集
Sep 27 Javascript
关于可运行代码无法正常执行的使用说明
May 13 Javascript
jQuery 源码分析笔记(3) Deferred机制
Jun 19 Javascript
JavaScript中的getDay()方法使用详解
Jun 09 Javascript
老生常谈angularjs中的$state.go
Apr 24 Javascript
VUE使用vuex解决模块间传值问题的方法
Jun 01 Javascript
React利用插件和不用插件实现双向绑定的方法详解
Jul 03 Javascript
vue-cli3 配置开发与测试环境详解
May 17 Javascript
js实现简单的日历显示效果函数示例
Nov 25 Javascript
js找出5个数中最大的一个数和倒数第二大的数实现方法示例小结
Mar 04 Javascript
使用React代码动态生成栅格布局的方法
May 24 Javascript
webpack5 联邦模块介绍详解
Jul 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
PHP新手上路(六)
2006/10/09 PHP
第九节--绑定
2006/11/16 PHP
PHP MSSQL 存储过程的方法
2008/12/24 PHP
php中突破基于HTTP_REFERER的防盗链措施(stream_context_create)
2011/03/29 PHP
php单例模式实现方法分析
2015/03/14 PHP
PHP编写简单的App接口
2016/08/28 PHP
PHP小程序支付功能完整版【基于thinkPHP】
2019/03/26 PHP
javascript 处理HTML元素必须避免使用的一种方法
2009/07/30 Javascript
JavaScript创建对象的写法
2013/08/29 Javascript
js 获取input点选按钮的值的方法
2014/04/14 Javascript
JavaScript变量声明详解
2014/11/27 Javascript
jQuery插件jFade实现鼠标经过的图片高亮其它变暗
2015/03/14 Javascript
AngularJS中的过滤器使用详解
2015/06/16 Javascript
基于javascript实现全国省市二级联动下拉选择菜单
2016/01/28 Javascript
深入解析桶排序算法及Node.js上JavaScript的代码实现
2016/07/06 Javascript
js表单元素checked、radio被选中的几种方法(详解)
2016/08/22 Javascript
NPM 安装cordova时警告:npm WARN deprecated minimatch@2.0.10: Please update to minimatch 3.0.2 or higher to
2016/12/20 Javascript
Flask中获取小程序Request数据的两种方法
2017/05/12 Javascript
简单实现vue验证码60秒倒计时功能
2017/10/11 Javascript
js最实用string(字符串)类型的使用及截取与拼接详解
2019/04/26 Javascript
JavaScript实现图片的放大缩小及拖拽功能示例
2019/05/14 Javascript
ionic+html5+API实现双击返回键退出应用
2019/09/17 Javascript
Python实现短网址ShortUrl的Hash运算实例讲解
2015/08/10 Python
python scipy求解非线性方程的方法(fsolve/root)
2018/11/12 Python
利用Python实现微信找房机器人实例教程
2019/03/10 Python
执行Django数据迁移时报 1091错误及解决方法
2019/10/14 Python
智能室内花园:Click & Grow
2021/01/29 全球购物
介绍一下javax.servlet.Servlet接口及其主要方法
2015/11/30 面试题
函授本科自我鉴定
2014/02/04 职场文书
校庆口号
2014/06/20 职场文书
党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
2015年学校党建工作总结
2015/05/19 职场文书
2019最新婚庆对联集锦!
2019/07/10 职场文书
工作总结之小学教师体育工作范文(3篇)
2019/10/07 职场文书
使用react-virtualized实现图片动态高度长列表的问题
2021/05/28 Javascript
MySQL系列之一 MariaDB-server安装
2021/07/02 MySQL