search

Home  >  Q&A  >  body text

javascript - 请教js中,return,return 0,return false有什么区别?

回复这个问题的评论想到的
平时会用return false阻止系统默认事件,比如

javascript$('a').click(function(){
    //一些操作
    return false;
});

我也知道return的值可以定义一个变量接收,比如

var result = function( a, b ){
    return a==b ? 1 : 0;
}
console.log(result);

但是0不是也是为假么,为什么 return 0 就不行?
我知道return falsereturn 0肯定有不一样,但是不知道是什么不一样~请教大家!

PHP中文网PHP中文网2901 days ago624

reply all(2)I'll reply

  • 大家讲道理

    大家讲道理2017-04-10 15:10:54

    0 就是 0, 0 不是假,0 类型转换成 false 之后才是假。

    function returnFalse() { return false; }
    function returnZero() { return 0; }
    
    if( returnFalse() === false ) console.log("I'm preventDefault() by false");
    if( returnZero() === false ) console.log("I'm perventDefault() by zero");
    

    reply
    0
  • 天蓬老师

    天蓬老师2017-04-10 15:10:54

    0只有看做表达式的时候,才具有表达false的性质,比如:

    if(0){
    console.log(true);
    }else{
    console.log(false);
    }

    而这里的 :

    return a==b ? 1 : 0;
    

    0其实是作为语句存在的 。

    向这样语句用表达式来表示的现象还有这样:
    会被视为false的值有:

    1. 数字0
    2. 空字符串''或""
    3. 布尔值false
    4. null
    5. undefined

    这里有提到

    reply
    0
  • Cancelreply