js基础:关于Boolean() 与 if
来源:互联网 发布:仿微信源码 html 编辑:程序博客网 时间:2024/06/10 00:26
js基础:关于Boolean() 与 if
最近面试比较多,但每次我问这个问题的时候,答出来的同学并不多
var a = 0;if( a) { alert(1); }
这个问题有部分人会答alert(1), 有些人会答不执行。
结果是不执行的,但答不执行的同学也说不出为什么,他只会说以他的经验,所以在这里我觉得有必要补下js基础知识,js基础好的人可以跳过此博文。
首先说这个问题之前 我们先回忆下 Boolean();
Boolean 是个转型函数。即可以传任何值转成 boolean类型, 即返回true 和 false.
那么什么时候是true , 什么时候是false, 它是有一定规则的。
我通过一张表来表明此规则。
数据类型转换为true的值转换为false的值BooleantruefalseString任何非空字符串“”Number任何非0数值0和NaNObject任何对象nullUndefined undefined注: Undefined 没有转换为true的值。
从这里我们一目了然, Boolean(0) 返回的是 false;
那么当if语句里面没有表达式,只是某个值时 如 if (XXX) 它会自动执行Boolean(xxx)操作, 即 if(XXX) = if(Boolean(xxx))
所以我们对应上面Boolean的转换规则 ,再结合上面的题,就非常容易理解了。
这就是 if(0) 会返回false的原因。
0 0
- js基础:关于Boolean() 与 if
- js基础之关于Boolean及相等运算符的隐式类型转换
- boolean表达式与在if条件中的使用
- js、其他类型与Boolean类型转换
- 关于if与else
- 关于if 与return
- Boolean与boolean
- 关于boolean
- JS中if语句参数类型为boolean&&string、boolean&&int等情况
- js中的对非boolean值param进行if(!param)的判断时的逻辑
- java中if判断里关于两个Boolean值等号连接的理解
- boolean.class与Boolean.TYPE
- Boolean与boolean的区别
- JNI与Boolean和boolean
- js中parseInt()与parseFloat(),Number(),Boolean(),String()转换
- js之类型转换与引用类型(Boolean/Number/String)
- js中parseInt()与parseFloat(),Number(),Boolean(),String()转换
- js中parseInt()与parseFloat(),Number(),Boolean(),String()转换
- 如何获取openId
- 乐驾2
- Android 图片、绘图
- Linux
- WebRTC 简单应用
- js基础:关于Boolean() 与 if
- Eclipse更换Theme
- PowerPC的字节序问题
- React Native 性能优化之可取消的异步操作
- Dataquest学习总结[2]
- JVM(八) 类加载器
- Android -- Wifi启动流程分析
- 2017专利申请流程,专利申请中的细节和注意事项
- 写入iCloud在模拟器和真机上失败的解决办法