一、js中,return 0,return false的区别?
乍眼看去,return 0和return false不是一样的吗,0转为布尔值不就是false,为假吗,其实并不是,怎么去更好的辨别呢?
#1. return的值,0就是0,false就是false,是不一样的:
1 | var result = function( a, b ){ |
这个例子打印的就是0;
再看一个例子
1 | function returnFalse() { return false; } |
这个例子运行后打印的是I'm preventDefault() by false
,更清楚的表明return 0并不等价于return false;
那到这里疑问就来了,我们写代码的过程中写过0就是false的情况,是什么情况下,0可以等价于false?
#2. 在写判断条件的时候,0可以作为表达式使用,这个时候0才具有false的性质:
1 | if(0){ |
这个时候打印结果为false,因为这个这个0会作为一个转为布尔值的操作,在0被转为了false,这个会执行else的操作,所以输出的结果是false;
总结:
- 0可以作为语句存在;
- 0只有作为表达式存在,才具有false的性质;
- 常见的表达式中会被视为false的值有:
- 数字0;
- 空字符串’’;
- 布尔值false;
- null;
- undefined;
二、return的用法
return语句应用范围只能出现在函数体内,出现在代码中的其他任何地方都会造成语法错误。
#1. 函数控制与函数结果:return 表达式;
#2. 返回正确的处理结果:return true;
#3. 返回控制,无函数结果:return false;
return false来阻止提交表单或者继续执行下面的代码,通俗的来说就是阻止执行默认的行为;
比较经典的例子:
1 | function a(){ |
注意:
这个例子展示出return false 只在当前函数有效,不会影响其他外部函数的执行。
return true相当于执行符,return false 相当于终止符。