void 0和undefined的区别void 0和undefined的区别 在前端开发中,未赋值的变量或参数默认为un
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,运行结果也如你所料:
但是这一切就没有例外吗?
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确实是关键字,但是它确实不会报错,而且没有任何提示。
如果你给null赋值或声明一个名为null的变量,则会报错提示:
谁有能保证团队里有这样可爱的小伙伴呢
所以我们该如何规避呢?
这里我们可以使用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
一个小知识点,水了这么多,见谅。
如果有用,动动你的小手,点点赞!!!
转载自:https://juejin.cn/post/7385483271700414527