• 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 : 类型错误,值的类型非预期类型发生错误