likes
comments
collection
share

void 0和undefined的区别void 0和undefined的区别 在前端开发中,未赋值的变量或参数默认为un

作者站长头像
站长
· 阅读数 22

void 0和undefined的区别

在前端开发中,未赋值的变量或参数默认为undefined,有时候我们对入参需要校验,可能会写下如下代码

let a;
let b = 10;
function test(param1,param2){
    let res = param1 !== undefined ? param1:param2;
    console.log(res);
}
test(a,b);//10

在这个示例中,你可能认为结果毫无疑问是10,运行结果也如你所料:

void 0和undefined的区别void 0和undefined的区别 在前端开发中,未赋值的变量或参数默认为un

但是这一切就没有例外吗?

var undefined = 20;
let a;
let b = 10;
function test(param1,param2){
    let res = param1 !== undefined ? param1:param2;
    console.log(res);
}
test(a,b);//undefined

你可能惊讶于undefined不是 关键字 吗?这样写不会报错吗?

没错,undefined确实是关键字,但是它确实不会报错,而且没有任何提示。

void 0和undefined的区别void 0和undefined的区别 在前端开发中,未赋值的变量或参数默认为un

如果你给null赋值或声明一个名为null的变量,则会报错提示:

void 0和undefined的区别void 0和undefined的区别 在前端开发中,未赋值的变量或参数默认为un

谁有能保证团队里有这样可爱的小伙伴呢

所以我们该如何规避呢?

这里我们可以使用void 0 替换undefined,void 后面跟任何数字都会返回undefined。

var undefined = 20;
let a;
let b = 10;
function test(param1,param2){
    let res = param1 !== void 0 ? param1:param2;
    console.log(res);
}
test(a,b);//10

void 0和undefined的区别void 0和undefined的区别 在前端开发中,未赋值的变量或参数默认为un

一个小知识点,水了这么多,见谅。

如果有用,动动你的小手,点点赞!!!

转载自:https://juejin.cn/post/7385483271700414527
评论
请登录