ReferenceError
:引用错误,即在作用域中没有找到该变量
console.log(a); // ReferenceError
TypeError
:类型错误,在作用域中已经声明变量并且找到,但是没有找到确切定义或者引用
foo(); // TypeError
bar(); // ReferenceError
var foo = function bar() {
// ...
};
foo()
由于对undefined
值进行函数调用而导致非法操作,因此抛出TypeError
异常。
bar()
名称标识符在赋值之前也无法在所在作用域中使用
上面代码可被理解为:
var foo;
foo(); // TypeError
bar(); // ReferenceError
foo = function() {
var bar = ...self...
// ...
}
当在作用域中找到了这个变量引用,然后你让这个变量去做他力所不能及的事情的时候,比如说引用它一个不存在的属性,比如说将非函数的变量用作函数引用,这个时候JavaScript
引擎就会抛出TypeError。
var a;
console.log(a.age); //TypeError
正文结束
Ctrl + Enter