2 回答

TA貢獻1865條經(jīng)驗 獲得超7個贊
您正在理解Undefined錯誤
未定義意味著已經(jīng)聲明了一個變量,但該變量的值尚未定義(尚未分配值)。例如:
function isEmpty(value){
// or simply value===undefined will also do in your case
if(typeof(value)==='undefined'||value==''||value.length==0){
return true;
}
return false;
}
let foo; // declared but not assigned a value so its undefined at the moment
console.log(isEmpty(foo))
添加 - 什么是未捕獲的 ReferenceError: "x" 未定義。
某處引用了一個不存在的變量。這個變量需要聲明,或者你需要確保它在你當前的腳本或作用域中可用。
很明顯,您沒有在上下文中的任何地方引用您的變量,因此您會遇到該異常。跟進鏈接
這是您可以通過捕獲引用錯誤來檢查變量是否在范圍內(nèi)或是否已聲明的方法
// Check if variable is declared or not
//let value;
try {
value;
} catch (e) {
if (e.name == "ReferenceError") {
console.log("variable not declared yet")
}
}
// or the function approach
function isEmpty(value){
// or simply value===undefined will also do in your case
if(typeof(value)==='undefined'||value==''||value.length==0){
return true;
}
return false;
}
try {
isEmpty(value);
} catch (e) {
if (e.name == "ReferenceError") {
console.log("variable not declared yet")
}
}

TA貢獻2037條經(jīng)驗 獲得超6個贊
這就是您正在尋找的,對value===undefined首次修復的測試。
const isEmpty = (value) => value===undefined||typeof(value)==='undefined'||value===''||value.length===0;
let foo;
let bar = 'test';
console.log(isEmpty());
console.log(isEmpty(foo));
console.log(isEmpty(bar));
添加回答
舉報