# Error 对象

# 说明

  • 在JavaScript中一旦代码解析或者运行时发生错误,JavaScript引擎就会自动抛出一个Error对象的实例。
  • Error对象的实例有三个基本属性:
    • name: 错误名称
    • message: 错误提示信息
    • stack: 错误栈
const e = new Error('这个是错误提示消息')
console.log(e.name)
console.log(e.message)
console.log(e.stack)
// Error
// 这个是错误提示消息
// Error: 这个是错误提示消息
//    at <anonymous>:1:11
  • Error对象是最一般的错误类型,在它的基础上还定义了其他6种派生错误类型:
错误名称 描述
EvalError 使用eval()函数产生的错误。注意: 新版的JavaScript使用SyntaxError替代EvalError
RangeError 数值超出规定的范围。
ReferenceError 非法引用。
SyntaxError 语法错误(会导致整个js文件都无法执行)。
TypeError 类型错误。
URIError encodeURI() 函数产生的错误。

# 例子

  • 1.RangeError
// 1 数组长度为负数
[].length = -5      
// Uncaught RangeError: Invalid array length

// 2.Number对象的方法参数超出范围
var num = new Number(1)
console.log(num.toFixed(-1))
// Uncaught RangeError: toFixed() digits argument must be between 0 and 20 at Number.toFixed
  • 2.ReferenceError
// 1 引用了不存在的变量
console.log(b)
// Uncaught ReferenceError: b is not defined

// 2 给一个无法被赋值的对象赋值
console.log("abc") = 1
// Uncaught ReferenceError: Invalid left-hand side in assignment
  • 3.SyntaxError
// 1 变量名不符合规范
var 1       
// Uncaught SyntaxError: Unexpected number
var 1a
// Uncaught SyntaxError: Invalid or unexpected token

// 2 给关键字赋值
function = 5     // Uncaught SyntaxError: Unexpected token =
  • 4.TypeError
// 1 调用不存在的方法
123()
// Uncaught TypeError: 123 is not a function
var o = {}
o.run()
// Uncaught TypeError: o.run is not a function

// 2 new关键字后接基本类型
var p = new 456
// Uncaught TypeError: 456 is not a constructor
最后一次修改时间: 9/28/2020, 11:37:23 AM