Сводка
Объект ReferenceError представляет ошибку, возникающую при обращении к не существующей переменной.
Синтаксис
new ReferenceError([message[, fileName[, lineNumber]]])
Параметры
message- Необязательный параметр. Человеко-читаемое описание ошибки.
fileName- Необязательный параметр. Имя файла, содержащего код, вызвавший исключение.
lineNumber- Необязательный параметр. Номер строки кода, вызвавшей исключение.
Описание
Исключение ReferenceError выбрасывается при попытке обратиться к переменной, которая не была объявлена.
Свойства
ReferenceError.prototype- Позволяет добавлять свойства в объект
ReferenceError.
Методы
Глобальный объект ReferenceError не содержит собственных методов, однако, он наследует некоторые методы из цепочки прототипов.
Экземпляры объекта ReferenceError
Свойства
ReferenceError.prototype.constructor- Определяет функцию, создающую прототип экземпляра.
ReferenceError.prototype.message- Сообщение ошибки. Хотя стандарт ECMA-262 определяет, что
ReferenceErrorдолжен предоставлять своё собственное свойствоmessage, в SpiderMonkey он наследует свойствоError.prototype.message. ReferenceError.prototype.name- Название ошибки. Унаследовано от
Error. ReferenceError.prototype.fileName- Путь к файлу, в котором возникла эта ошибка. Унаследовано от
Error. ReferenceError.prototype.lineNumber- Номер строки в файле, в котором возникла эта ошибка. Унаследовано от
Error. ReferenceError.prototype.columnNumber- Номер колонки в строке, на которой возникла эта ошибка. Унаследовано от
Error. ReferenceError.prototype.stack- Стек вызовов. Унаследовано от
Error.
Методы
Хотя объект прототипа ReferenceError не содержит собственных методов, экземпляры ReferenceError наследуют некоторые методы из цепочки прототипов.
Примеры
Пример: перехват исключения ReferenceError
try {
var a = undefinedVariable;
} catch (e) {
console.log(e instanceof ReferenceError); // true
console.log(e.message); // "undefinedVariable is not defined" - undefinedVariable не определена
console.log(e.name); // "ReferenceError"
console.log(e.fileName); // "Scratchpad/1"
console.log(e.lineNumber); // 2
console.log(e.columnNumber); // 6
console.log(e.stack); // "@Scratchpad/2:2:7\n"
}
Пример: возбуждение исключения ReferenceError
try {
throw new ReferenceError('Привет', 'someFile.js', 10);
} catch (e) {
console.log(e instanceof ReferenceError); // true
console.log(e.message); // "Привет"
console.log(e.name); // "ReferenceError"
console.log(e.fileName); // "someFile.js"
console.log(e.lineNumber); // 10
console.log(e.columnNumber); // 0
console.log(e.stack); // "@Scratchpad/2:2:9\n"
}
Спецификации
| Спецификация | Статус | Комментарии |
|---|---|---|
| ECMAScript 3-е издание. | Стандарт | Изначальное определение. |
| ECMAScript 5.1 (ECMA-262) Определение 'ReferenceError' в этой спецификации. |
Стандарт | |
| ECMAScript 6 (ECMA-262) Определение 'ReferenceError' в этой спецификации. |
Кандидат в рекомендации |
Совместимость с браузерами
| Возможность | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|
| Базовая поддержка | (Да) | (Да) | (Да) | (Да) | (Да) |
| Возможность | Android | Chrome для Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|---|
| Базовая поддержка | (Да) | (Да) | (Да) | (Да) | (Да) | (Да) |