我的Asp主页具有以下代码:
<script>
if (theForm !== undefined) { // <<== line 746: error
theForm.onsubmit = ...bla bla... ;
}
</script>
Chrome控制台报告错误:
Uncaught ReferenceError: theForm is not defined bla.aspx:746
我的问题是:这是检测名称是否未定义的错误方法吗?还是Chrome处理不同的内容?
(注意:Firefox控制台不会报告错误,但仍会按照该脚本块的JS代码停止处理)
答案 0 :(得分:2)
消息Uncaught ReferenceError: theForm is not defined
应解释为
theForm is not
declared
为什么?
基本上,变量可以是undefined
(但可以声明),也可以根本不声明。
示例
undefined
var foo; // if a value would be assigned (i.e.: var foo = 3), then it wouldn't be undefined
console.log(foo);
console.log(foo); // <-- foo was never declared
如何修复它?
像这样使用typeof
:
console.log('Is undefined:', typeof foo === 'undefined');
答案 1 :(得分:1)
已声明但变量值为undefined
的变量与从未声明过的变量之间有区别。我猜你的情况是后者。为此,请使用typeof运算符。
if(typeof(theForm) !== 'undefined'){ //typeof returns a string