use*_*330 7 javascript firefox typeerror referenceerror
什么是两者之间的差异
TypeError: ... is undefined
Run Code Online (Sandbox Code Playgroud)
和
ReferenceError: ... is not defined
Run Code Online (Sandbox Code Playgroud)
?
Bar*_*mar 22
ReferenceError
当您尝试使用根本不存在的变量时会发生A.
TypeError
当变量存在时会发生A ,但您尝试执行的操作不适合它包含的值类型.在详细消息显示"未定义"的情况下,如果您有一个值为特殊undefined
值的变量,并且您尝试访问它的属性,则会发生这种情况.
有关此问题的一些讨论,请参阅http://javascriptweblog.wordpress.com/2010/08/16/understanding-undefined-and-preventing-referenceerrors/.
小智 13
以下是JavaScript错误类型:
JavaScript 1.5规范定义了六种主要错误类型,如下所示:
EvalError:以不正确的方式使用eval()函数时引发.
RangeError:当数值变量超出其允许范围时触发.
ReferenceError:使用无效引用时引发.
SyntaxError:在解析JavaScript代码时发生语法错误时引发.
TypeError:当变量类型不符合预期时引发.
强文本的URIError:时引发encodeURI()
或decodeURI()
功能不正确的方式被使用.
考虑以下代码:
function foo(){
var d=1234;
console.log(d.substring(1,2));
}
foo();
Run Code Online (Sandbox Code Playgroud)
这将有以下输出:
异常:TypeError: d.substring is not a function 这是因为我们对给定的操作(需要字符串的子字符串)使用了错误的类型(数字)。当值不是预期类型时,TypeError 对象表示错误.
function foo(){
var d=1234;
console.log(c);
}
foo();
Run Code Online (Sandbox Code Playgroud)
这将有以下输出:
异常:ReferenceError: c is not defined 这是因为变量“c”的引用不存在于局部或全局作用域中,我们仍在尝试使用它。当访问不存在的变量时抛出 ReferenceError 异常.
归档时间: |
|
查看次数: |
4224 次 |
最近记录: |