RangeError对象标明一个错误，当一个值不在其所允许的范围或者集合中。

## 语法

    new RangeError([message[, fileName[, lineNumber]]])

### 参数

`message`
  可选，可读的错误描述
`fileName`
  可选，包含造成异常代码的文件名
`lineNumber`
  可选，造成异常的代码所在的行数

## 描述

试图传递一个number参数给一个范围内不包含该number的函数时则会引发RangeError。当传递一个不合法的length值作为`Array` 构造器的参数创建数组，或者传递错误值到数值计算方法（`Number.toExponential()`，`Number.toFixed()` ，`Number.toPrecision()`），会出现RangeError。.

## 属性

`RangeError.prototype`
  `允许在RangeError对象上附加属性。`

## 方法

`RangeError`全局对象没有自带方法，但它通过可以原型链继承一些方法。

## `RangeError`实例

### 属性

`RangeError.prototype.constructor`
  Specifies the function that created an instance's prototype.
`RangeError.prototype.message`
  Error message. Although ECMA-262 specifies that `RangeError` should provide its own `message` property, in SpiderMonkey, it inherits `Error.prototype.message`.
`RangeError.prototype.name`
  Error name. Inherited from `Error`.
`RangeError.prototype.fileName`
  Path to file that raised this error. Inherited from `Error`.
`RangeError.prototype.lineNumber`
  Line number in file that raised this error. Inherited from `Error`.
`RangeError.prototype.columnNumber`
  Column number in line that raised this error. Inherited from `Error`.
`RangeError.prototype.stack`
  Stack trace. Inherited from `Error`.

### 方法

Although the `RangeError` prototype object does not contain any methods of its own, `RangeError` instances do inherit some methods through the prototype chain.

## 例子

### 使用`RangeError`

    var check = function(num) {
      if (num < MIN || num > MAX) {
        throw new RangeError('Parameter must be between ' + MIN + ' and ' + MAX);
      }
    };

    try {
      check(500);
    }
    catch (e) {
      if (e instanceof RangeError) {
        // 处理越界错误
      }
    }

## 规范

Specification | Status | Comment
--- | --- | ---
ECMAScript 3rd Edition (ECMA-262) | Standard | Initial definition.
ECMAScript 5.1 (ECMA-262) RangeError | Standard |
ECMAScript 2015 (6th Edition, ECMA-262) RangeError | Standard |
ECMAScript Latest Draft (ECMA-262) RangeError | Draft |

## 浏览器兼容性

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

- Desktop
- Mobile

Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari
--- | --- | --- | --- | --- | ---
Basic support | (Yes) | (Yes) | (Yes) | (Yes) | (Yes)

Feature | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile
--- | --- | --- | --- | --- | --- | ---
Basic support | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes)

## 相关连接

- `Error`
- `RangeError.prototype`
- `Array`
- `Number.toExponential()`
- `Number.toFixed()`
- `Number.toPrecision()`