JavaScript中的脑筋急转弯

1、 undefined和未定义(not defined)是一样的吗?
答:不是。

var a    // 定义a但不赋值
a        // 回显:undefined
b        // 回显:Uncaught ReferenceError: b is not defined

可以看出,a的值是undefined,而访问b抛出异常。

2、 考虑下面的函数:

function test(a) {
    if(a) {
        console.log(true)
    } else {
        console.log(false)
    }
}

传入什么参数的时候打印出false?
答:传入以下几个参数时会为falsefalse undefined null ''

3、 继续使用上题的test函数。
以下调用返回的结果是什么?

test(0==false)
test('false'==false)
test(''==false)
test(null==false)
test(null==undefined)
test(null===undefined)

结果依次是:true false true false true false

延伸阅读:

  1. 详解一下 javascript 中的比较

标签: none

添加新评论