我想检查变量是否有定义。例如,下面的代码会抛出一个未定义的错误
alert( x );
我如何捕捉这个错误?
我想检查变量是否有定义。例如,下面的代码会抛出一个未定义的错误
alert( x );
我如何捕捉这个错误?
当前回答
就像下面这样做:
function isNotDefined(value) {
return typeof value === "undefined";
}
叫它:
isNotDefined(undefined); //return true
isNotDefined('Alireza'); //return false
其他回答
我经常这样做:
function doSomething(variable)
{
var undef;
if(variable === undef)
{
alert('Hey moron, define this bad boy.');
}
}
void操作符对于传递给它的任何参数/表达式都返回undefined。因此,您可以根据结果进行测试(实际上,一些微型程序将代码从undefined更改为void 0以节省几个字符)
例如:
void 0
// undefined
if (variable === void 0) {
// variable is undefined
}
一个更简单、更简洁的版本是:
if (!x) {
//Undefined
}
OR
if (typeof x !== "undefined") {
//Do something since x is defined.
}
真正测试变量是否未定义的唯一方法是执行以下操作。记住,undefined是JavaScript中的一个对象。
if (typeof someVar === 'undefined') {
// Your variable is undefined
}
这个线程中的其他一些解决方案会让你相信一个变量是未定义的,即使它已经定义了(例如,值为NULL或0)。
我经常用最简单的方法:
var variable;
if (variable === undefined){
console.log('Variable is undefined');
} else {
console.log('Variable is defined');
}
编辑:
如果没有初始化变量,将抛出异常"Uncaught ReferenceError: variable is not defined…"