- RangeError:Maximum call stack size exceeded
含义:超出了最大的堆栈大小
解释:消耗大量堆栈,导致浏览器抛出错误,
function pow(x, n) { return x * pow(x, n - 1); } pow(10,5)
- ReferenceError: a is not defined
含义:a未被定义
解释:引用一个未被定义的变量,会抛出错误
// 变量未声明 console.log(a)
- SyntaxError: Identifier ‘arg’ has already been declared
含义: 重复声明
解释:该变量已经作为参数出现,又用 let | const 再次声明
function fn(arg) { const arg = [] }
- SyntaxError: Invalid or unexpected token
含义:无效或意外的标记
解释:通常是缺少一个对应的符号造成的,或者是中文的引号
var colors = [‘#000’, #333’, ‘#666’];
- TypeError: Cannot read property ‘id’ of undefined
含义:无法读取属性‘id’’
解释:访问或设置undefined,null 的属性的时候发生
var a = undefined a.id // 读取 a.id = 1 // 设置
总结
常见的错误类型
- rangeError : 超出相应的范围
- referenceError :引用类型错误,一个不存在的变量被引用时发生错误
- SyntaxError :语法错误
- TypeError : 类型错误,值的类型非预期类型发生错误