undefined判断

直接props === undefined或者typeof props === 'undefined'不行吗?

这样很可能会导致一些问题,看如下的示例

function test() {
    var undefined = 10;
    console.log(undefined);
}
test(); //10

结果输出了10,可见undefined被重写了。在ES5之前,window下的undefined是可以被重写的,这会导致不少问题,在ES5之后,全局下的undefined虽然不能被重写,局部变量中的undefined依然可以被重写(非严格模式),如上例,所以保险的判断方式如下。

function isUndefined(input) {
    return input === void 0;
}

void运算符通常仅用于获取未定义的原始值,通常使用void(0),等效于void 0,参见https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/void

如果您觉得本文对您有用,欢迎捐赠或留言~
微信支付
支付宝

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注