js基础:关于Boolean() 与 if
2015-03-03 15:53
183 查看
最近面试比较多,但每次我问这个问题的时候,答出来的同学并不多
这个问题有部分人会答alert(1), 有些人会答不执行。
结果是不执行的,但答不执行的同学也说不出为什么,他只会说以他的经验,所以在这里我觉得有必要补下js基础知识,js基础好的人可以跳过此博文。
首先说这个问题之前 我们先回忆下 Boolean();
Boolean 是个转型函数。即可以传任何值转成 boolean类型, 即返回true 和 false.
那么什么时候是true , 什么时候是false, 它是有一定规则的。
我通过一张表来表明此规则。
数据类型
转换为true的值
转换为false的值
Boolean
true
false
String
任何非空字符串
“”
Number
任何非0数值
0和NaN
Object
任何对象
null
Undefined
undefined
注: Undefined 没有转换为true的值。
从这里我们一目了然, Boolean(0) 返回的是 false;
那么当if语句里面没有表达式,只是某个值时 如 if (XXX) 它会自动执行Boolean(xxx)操作, 即 if(XXX) = if(Boolean(xxx))
所以我们对应上面Boolean的转换规则 ,再结合上面的题,就非常容易理解了。
这就是 if(0) 会返回false的原因。
var a = 0; if( a) { alert(1); }
这个问题有部分人会答alert(1), 有些人会答不执行。
结果是不执行的,但答不执行的同学也说不出为什么,他只会说以他的经验,所以在这里我觉得有必要补下js基础知识,js基础好的人可以跳过此博文。
首先说这个问题之前 我们先回忆下 Boolean();
Boolean 是个转型函数。即可以传任何值转成 boolean类型, 即返回true 和 false.
那么什么时候是true , 什么时候是false, 它是有一定规则的。
我通过一张表来表明此规则。
数据类型
转换为true的值
转换为false的值
Boolean
true
false
String
任何非空字符串
“”
Number
任何非0数值
0和NaN
Object
任何对象
null
Undefined
undefined
注: Undefined 没有转换为true的值。
从这里我们一目了然, Boolean(0) 返回的是 false;
那么当if语句里面没有表达式,只是某个值时 如 if (XXX) 它会自动执行Boolean(xxx)操作, 即 if(XXX) = if(Boolean(xxx))
所以我们对应上面Boolean的转换规则 ,再结合上面的题,就非常容易理解了。
这就是 if(0) 会返回false的原因。
相关文章推荐
- js基础:关于Boolean() 与 if
- js基础:关于Boolean() 与 if
- js基础之关于Boolean及相等运算符的隐式类型转换
- 笔记 - JS易忘基础知识(二)(关于对象和继承)
- js基础学习第二天(关于DOM和BOM)二
- 关于js基础easy忘记的那些事儿
- JS基础第2课:函数的声明以及ifelse语句
- js基础学习之--关于 Cookie 的增删改查的封装函数
- C基础关于IF语句.
- JS中的if和else的用法以及基础语法
- js基础学习第一天(关于DOM和BOM)一
- 关于一些基础的js对象的属性和方法问题
- 关于js对象的基础知识
- js关于if(''==0)
- 关于javaBean中boolean类型变量的set和get注入后传到前端JS中的问题
- JS一起学01:css复习、js基础知识、事件、参数、函数、网页换肤、if判断、className问题、浏览器执行顺序
- js基础学习第一天(关于DOM和BOM)一
- jquery源码阅读知识储备(4)关于js中if的解惑
- js基础学习第一天(关于DOM和BOM)一
- 【js基础】javascript中关于数据类型一些知识和类型判断