📅  最后修改于: 2023-12-03 15:24:59.215000             🧑  作者: Mango
在 JavaScript 中,null 和 undefined 通常都表示某个变量或者属性并没有被初始化或者赋值,这种情况可以用一些技巧来避免问题的出现。
使用逻辑运算符 ||
和 ??
可以快速替换 null 或 undefined:
let foo = null;
let bar = undefined;
let result1 = foo || 'default';
let result2 = bar ?? 'default';
console.log(result1); // 'default'
console.log(result2); // 'default'
以上例子中,使用 ||
运算符时,如果 foo
的值为 null 或 undefined,那么 result1
将会被赋值为 'default';使用 ??
运算符时,如果 bar
的值为 null 或 undefined,那么 result2
将会被赋值为 'default'。
使用三元运算符 ?:
可以进行更加复杂的条件判断:
let foo = null;
let result = (foo === null || foo === undefined) ? 'default' : foo;
console.log(result); // 'default'
以上例子中,使用三元运算符时,如果 foo
的值为 null 或 undefined,那么 result
将会被赋值为 'default';否则,result
的值将会被赋值为 foo
的值。
可以在函数声明时给参数指定默认值,从而防止出现 null 或 undefined:
function myFunc(foo = 'default') {
console.log(foo);
}
myFunc(); // 'default'
myFunc(null); // null
以上例子中,使用默认参数时,如果函数调用时不传递参数,那么 foo
的值将会被赋值为 'default';如果函数调用时传递的参数为 null,那么 foo
的值将会被赋值为 null。
可以使用对象解构来防止出现 null 或 undefined:
let obj = { foo: null };
let { foo = 'default' } = obj;
console.log(foo); // 'default'
以上例子中,使用对象解构时,如果 obj
中属性 foo
的值为 null 或 undefined,那么 foo
的值将会被赋值为 'default'。
总的来说,为了避免 null 或 undefined 带来的问题,可以采用以上方法进行处理。