检查 === undefined 时未捕获的 ReferenceError(未定义)
Uncaught ReferenceError (not defined) when checking === undefined
我有以下代码:
simpleExample.html
:
<!DOCTYPE html>
<html lang="en">
<head>
<title>Simple example</title>
</head>
<body>
Open the Console.
<script src="js/simpleExampleJS.js"></script>
</body>
</html>
js/simpleExampleJS.js
:
MyObject = {
COMPUTER_GREETING: "Hello World!",
hello: function() {
console.log(MyObject.COMPUTER_GREETING);
}
};
checkSomeGlobal = function() {
if(someGlobal === undefined) {
console.log("someGlobal is undefined & handled without an error.");
} else {
console.log("someGlobal is defined.");
}
};
MyObject.hello();
checkSomeGlobal();
当我 运行 这个时,我得到:
Hello World!
Uncaught ReferenceError: someGlobal is not defined
at checkSomeGlobal (simpleExampleJS.js:9)
at simpleExampleJS.js:17
(第一行输出一般表示代码正在加载和运行ning)。
MDN indicates that a potentially undefined variable can be used as the left-hand-size of a strict equal/non-equal comparison。然而 当检查 if(someGlobal === undefined)
时,该行代码会产生 错误 因为变量未定义,而不是使比较计算结果为 true
。如何检查并处理这个未定义的变量情况而不会出错?
那个错误是说没有这样的变量(它从未声明过),而不是它的值是 undefined
.
检查一个变量是否存在,可以这样写typeof someGlobal
我有以下代码:
simpleExample.html
:
<!DOCTYPE html>
<html lang="en">
<head>
<title>Simple example</title>
</head>
<body>
Open the Console.
<script src="js/simpleExampleJS.js"></script>
</body>
</html>
js/simpleExampleJS.js
:
MyObject = {
COMPUTER_GREETING: "Hello World!",
hello: function() {
console.log(MyObject.COMPUTER_GREETING);
}
};
checkSomeGlobal = function() {
if(someGlobal === undefined) {
console.log("someGlobal is undefined & handled without an error.");
} else {
console.log("someGlobal is defined.");
}
};
MyObject.hello();
checkSomeGlobal();
当我 运行 这个时,我得到:
Hello World!
Uncaught ReferenceError: someGlobal is not defined
at checkSomeGlobal (simpleExampleJS.js:9)
at simpleExampleJS.js:17
(第一行输出一般表示代码正在加载和运行ning)。
MDN indicates that a potentially undefined variable can be used as the left-hand-size of a strict equal/non-equal comparison。然而 当检查 if(someGlobal === undefined)
时,该行代码会产生 错误 因为变量未定义,而不是使比较计算结果为 true
。如何检查并处理这个未定义的变量情况而不会出错?
那个错误是说没有这样的变量(它从未声明过),而不是它的值是 undefined
.
检查一个变量是否存在,可以这样写typeof someGlobal