Сделайте так чтобы код внутри функции reference порождал ошибку типа referenceerror

Объект ReferenceError представляет ошибку, возникающую при обращении к несуществующей переменной.

Синтаксис

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

Параметры

message

Необязательный параметр. Человеко-читаемое описание ошибки

fileName
Non-standard

Необязательный параметр. Имя файла, содержащего код, вызвавший исключение

lineNumber
Non-standard

Необязательный параметр. Номер строки кода, вызвавшей исключение

Описание

Исключение ReferenceError выбрасывается при попытке обратиться к переменной, которая не была объявлена.

Свойства

ReferenceError.prototype (en-US)

Позволяет добавлять свойства в объект ReferenceError.

Методы

Глобальный объект ReferenceError не содержит собственных методов, однако, он наследует некоторые методы из цепочки прототипов.

Свойства

{{page(‘/ru/docs/Web/JavaScript/Reference/Global_Objects/ReferenceError/prototype’, ‘Properties’)}}

Методы

{{page(‘/ru/docs/Web/JavaScript/Reference/Global_Objects/ReferenceError/prototype’, ‘Methods’)}}

Примеры

Перехват ReferenceError

try {
  var a = undefinedVariable;
} catch (e) {
  console.log(e instanceof ReferenceError); // true
  console.log(e.message);                   // "undefinedVariable is not defined"
  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:7n"
}

Выбрасывание 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:9n"
}

Спецификации

Specification
ECMAScript Language Specification
# sec-native-error-types-used-in-this-standard-referenceerror

Совместимость с браузерами

BCD tables only load in the browser

Смотрите также

Типы ошибок

Последнее обновление: 30.08.2021

В блоке catch мы можем получить информацию об ошибке, которая представляет объект. Все ошибки, которые генерируются интерретатором JavaScript,
предоставляют объект типа Error, который имеет ряд свойств:

  • message: сообщение об ошибке

  • name: тип ошибки

Стоит отметить, что отдельные браузеры поддерживают еще ряд свойств, но их поведение в зависимости от браузера может отличаться:

  • fileName: название файла с кодом JavaScript, где произошла ошибка

  • lineNumber: строка в файле, где произошла ошибка

  • columnNumber: столбец в строке, где произошла ошибка

  • stack: стек ошибки

Получим данные ошибки, например, при вызове несуществующей функции:

try{
	callSomeFunc();
}
catch(error){
	console.log("Тип ошибки:", error.name);
	console.log("Ошибка:", error.message);
}

Консольный вывод:

Тип ошибки: ReferenceError
Ошибка: callSomeFunc is not defined

Типы ошибок

Выше мы рассмотрели, что генерируемая интерпретатором ошибка представляет тип Error, однако при вызове несуществующей функции
генерируется ошибка типа ReferenceError. Дело в том, что тип Error представляет общий тип ошибок. В то же время есть конкретные типы ошибок для определенных ситуаций:

  • EvalError: представляет ошибку, которая генерируется при выполнении глобальной функции eval()

  • RangeError: ошибка генерируется, если параметр или переменная, представляют число, которое находится вне некотоого допустимого диапазона

  • ReferenceError: ошибка генерируется при обращении к несуществующей ссылке

  • SyntaxError: представляет ошибку синтаксиса

  • TypeError: ошибка генерируется, если значение переменной или параметра представляют некорректный тип или пр попытке изменить значение, которое нельзя изменять

  • URIError: ошибка генерируется при передаче функциям encodeURI() и decodeURI() некорректных значений

  • AggregateError: предоставляет ошибку, которая объединяет несколько возникших ошибок

Например, при попытке присвоить константе второй раз значение, генерируется ошибка TypeError:

try{
	const num = 9;
	num = 7;
}
catch(error){
	console.log(error.name);		// TypeError
	console.log(error.message);		// Assignment to constant variable.
}

Применение типов ошибок

При генерации ошибок мы можем использовать встроенные типы ошибок. Например:

class Person{
 
    constructor(name, age){
		if(age < 0) throw new Error("Возраст должен быть положительным");
        this.name = name;
        this.age = age;
    }
	print(){ console.log(`Name: ${this.name}  Age: ${this.age}`);}
}
	
try{
	const tom = new Person("Tom", -45);
	tom.print();
}
catch(error){	
	console.log(error.message);	// Возраст должен быть положительным
}

Здесь конструктор класса Person принимает значения для имени и возаста человека. Если передан отрицательный возраст, то генерируем ошибку в виде объекта Error. В качестве параметра в
конструктор Error передается сообщение об ошибке:

if(age < 0) throw new Error("Возраст должен быть положительным");

В итоге при обработке исключения в блоке catch мы сможем получить переданное сообщение об ошибке.

Все остальные типы ошибок в качестве первого параметра в конструкторе также принимают сообщение об ошибке. Так, сгенерируем несколько типов ошибок:

class Person{
 
    constructor(pName, pAge){
		
		const age = parseInt(pAge);
		if(isNaN(age))	throw new TypeError("Возраст должен представлять число");
		if(age < 0 || age > 120) throw new RangeError("Возраст должен быть больше 0 и меньше 120");
        this.name = pName;
        this.age = age;
    }
	print(){ console.log(`Name: ${this.name}  Age: ${this.age}`);}
}

Поскольку для возраста можно ередатьне только число, но и вообще какое угодно значение, то вначале мы пытаемся преобразовать это значение в число с помощью
функции parseInt():

const age = parseInt(pAge);
if(isNaN(age))	throw new TypeError("Возраст должен представлять число");

Далее с помощью функции isNaN(age) проверяем, является полученное число числом. Если age — НЕ число, то данная функция возвращает true. Поэтому
генерируется ошибка типа TypeError.

Затем проверяем, что полученное число входит в допустимый диапазон. Если же не входит, генерируем ошибку типа RangeError:

if(age < 0 || age > 120) throw new RangeError("Возраст должен быть больше 0 и меньше 120");

Проверим генерацию исключений:

try{
	const tom = new Person("Tom", -45);
}
catch(error){	
	console.log(error.message);	// Возраст должен быть больше 0 и меньше 120
}

try{
	const bob = new Person("Bob", "bla bla");
}
catch(error){	
	console.log(error.message);	// Возраст должен представлять число
}

try{
	const sam = new Person("Sam", 23);
	sam.print();	// Name: Sam  Age: 23
}
catch(error){	
	console.log(error.message);
}

Консольный вывод:

Возраст должен быть больше 0 и меньше 120
Возраст должен представлять число
Name: Sam  Age: 23

Обработка нескольких типов ошибок

При выполнении одного и то же кода могут генерироваться ошибки разных типов. И иногда бывает необходимо разграничить обработку разных типов.
В этом случае мы можем проверять тип возникшей ошибки. Например, пример выше с классом Person:

class Person{
 
    constructor(pName, pAge){
		
		const age = parseInt(pAge);
		if(isNaN(age))	throw new TypeError("Возраст должен представлять число");
		if(age < 0 || age > 120) throw new RangeError("Возраст должен быть больше 0 и меньше 120");
        this.name = pName;
        this.age = age;
    }
	print(){ console.log(`Name: ${this.name}  Age: ${this.age}`);}
}
	
try{
	const tom = new Person("Tom", -45);
	const bob = new Person("Bob", "bla bla");
}
catch(error){	
	if (error instanceof TypeError) {
		console.log("Некорректный тип данных.");
	} else if (error instanceof RangeError) {
		console.log("Недопустимое значение");
	}
	console.log(error.message);
}

Создание своих типов ошибок

Мы не ограничены встроенными только встроенными типами ошибок и при необходимости можем создавать свои типы ошибок, предназначеные для каких-то конкретных ситуаций.
Например:

class PersonError extends Error {
  constructor(value, ...params) {
    // остальные параметры передаем в конструктор базового класса
    super(...params)
    this.name = "PersonError"
    this.argument = value;
  }
}

class Person{
 
    constructor(pName, pAge){
		
		const age = parseInt(pAge);
		if(isNaN(age))	throw new PersonError(pAge, "Возраст должен представлять число");
		if(age < 0 || age > 120) throw new PersonError(pAge, "Возраст должен быть больше 0 и меньше 120");
        this.name = pName;
        this.age = age;
    }
	print(){ console.log(`Name: ${this.name}  Age: ${this.age}`);}
}
	
try{
	//const tom = new Person("Tom", -45);
	const bob = new Person("Bob", "bla bla");
}
catch(error){	
	if (error instanceof PersonError) {
		console.log("Ошибка типа Person. Некорректное значение:", error.argument);
	}
	console.log(error.message);
}

Консольный вывод

Ошибка типа Person. Некорректное значение: bla bla
Возраст должен представлять число

Для представления ошибки класса Person здесь определен тип PersonError, который наследуется от класса Error:

class PersonError extends Error {
  constructor(value, ...params) {
    // остальные параметры передаем в конструктор базового класса
    super(...params)
    this.name = "PersonError"
    this.argument = value;
  }
}

В конструкторе мы определяем дополнительное свойство — argument. Оно будет хранить значение, которое вызвало ошибку. С помощью параметра value конструктора
получаем это значение. Кроме того, переопреляем имя типа с помощью свойства this.name.

В классе Person используем этот тип, передавая в конструктор PersonError соответствующие значения:

if(isNaN(age))	throw new PersonError(pAge, "Возраст должен представлять число");
if(age < 0 || age > 120) throw new PersonError(pAge, "Возраст должен быть больше 0 и меньше 120");

Затем при обработки исключения мы можем проверить тип, и если он представляет класс PersonError, то обратиться к его свойству argument:

catch(error){	
	if (error instanceof PersonError) {
		console.log("Ошибка типа Person. Некорректное значение:", error.argument);
	}
	console.log(error.message);
}

Я работаю над некоторыми учебниками по веб-аудио в этой книге O’Reilly: http://chimera.labs.oreilly.com/books/1234000001552/ch02.html#s02_2

Следующий код предназначен для создания системы для приостановки аудиофайла и возобновления воспроизведения.

// Assume context is a web audio context, buffer is a pre-loaded audio buffer.
var startOffset = 0;
var startTime = 0;

function pause() {
  source.stop();
  // Measure how much time passed since the last pause.
  startOffset += context.currentTime - startTime;
}

function play() {
  startTime = context.currentTime;
  var source = context.createBufferSource();
  // Connect graph
  source.buffer = this.buffer;
  source.loop = true;
  source.connect(context.destination);
  // Start playback, but make sure we stay in bound of the buffer.
  source.start(0, startOffset % buffer.duration);
}

Однако запуск pause() функция приводит к следующей ошибке:

Uncaught ReferenceError: source is not defined 

Теперь, с моей точки зрения, это вызвано тем, что source был определен с var ключевое слово, делающее его ограниченным play() функции и поэтому недоступны для pause(). Удаление var ключевое слово действительно решает проблему. Может ли кто-нибудь просто заверить меня, что мои рассуждения верны? Это просто опечатка или есть какой-то принцип, который я не понимаю? (Я проверил опечатки для книги, и там нет упоминания об этом.)

Lisa Kapral

Здравствуйте, объясните, пожалуйста, что я делаю не так с type
https://ru.hexlet.io/code_reviews/278187


9


1

Вадим С.

Lisa Kapral, у вас вместо Type Error получается Reference Error. Вы присваиваете константе вызов функции, в которую передаете неопределенную переменную. Попробуйте изменить условие, чтобы была именно ошибка типизации, примерно как в теории:
вы создали и числовую константу и функцию, а потом пытаетесь вызвать число


0

Lisa Kapral

Хахахах, да, вы полностью правы, я не до конца понимаю, как работает typeerror. Я сразу же сделала reference, но вот с type я сижу вторые сутки, и задание выполняется только на половину


0

Lisa Kapral

Также я копировала ошибку из теории, но итог оказывался плачевным для меня


0

Lisa Kapral

  ● Test suite failed to run

    TypeError: type is not a function

      1 | const type = 20  
    > 2 | const right = type(10);


0

Вадим С.

Lisa Kapral, вот именно так, как написано в задании:
Сделайте так, чтобы код внутри функции type порождал ошибку типа TypeError.
А потом, если не будет работать, выложите ревью сюда, посмотрим


0

Lisa Kapral

еще раз здравствуйте!

const type = (a) => 5 * 2; {
  const right = type(30);


};


0

Вадим С.

Lisa Kapral, смотрите как:

const type = () => {
какой-то код, порождающий ошибку typeError. Любой.
}


1

Lisa Kapral

Вадим С., Ура,спасибо!!! я сделала, правда еще остался вопрос, почему было достаточно ничего не прописывать в константе?


0

Вадим С.

Lisa Kapral, в скобках — аргумент, который вы передаете в функцию. В данном случае, вам необязательно что-то в функцию передавать, чтобы выполнить задание. Но, конечно, можете и передать, ничего не изменится)


0

У вас вечеринка, а закуска кончилась, вы просите подругу что-нибудь купить.

— Эй, можешь сходить в магазин и купить какой-нибудь еды?
Она отвечает:
— Что именно?
Вы говорите:
— Ну, типа чипсы или что-нибудь такое. У нас всё закончилось.
Она отвечает:
— Сколько упаковок чипсов взять?
И у вас уже начинает немного вскипать мозг:
— Да, я не знаю, штук 5.
— А какие чипсы?

И вы так глазами делаете и отвечаете «ааа… забудь», или решаете идти до конца и объясняете подробно задачу: «Возьми 5 средних пакетов картофельных чипсов со вкусом бекона».

Десять минут спустя она возвращается с пустыми руками и говорит «у них не было таких чипсов в пакетах среднего размера».

О «программистах» есть определённые стереотипы и то, что они могут быть слишком конкретными и чересчур дотошными — один из них. Многие думают, что такие люди хорошо разбираются в математике или что-то подобное.

В реальности всё намного сложнее. Не существует всего двух типов людей, спектр типов личности буквально бесконечен. И для некоторых людей программирование немного более органично, потому что компьютеры абсолютно конкретные и абсурдно однозначные. Это совершенно не значит, что если вы считаете, что у вас «нематематический склад ума», вы не сможете стать хорошим разработчиком. Это значит только, что вам нужно научиться лучше распознавать и понимать, как именно работают компьютеры.

Такой способ поведения компьютеров ведёт ко множеству ошибок. Если вы наберёте console.log — console запятая log, вместо console точка log, JavaScript скажет «Понятия не имею, что ты имел в виду».

Вы будете делать ошибки и ваши программы будут содержать ошибки. Жизнь — она такая. Любой программист делает ошибки и это не имеет особого значения. Значение имеет только то, как вы потом с ними справляетесь.

Исправление ошибок — важный навык. Это делает программирование непохожим на другие типы работ: ошибки неизбежны, вы не можете от них полностью застраховаться, а исправление ошибок — часть вашей работы.
Ошибка вроде «запятая вместо точки» это тип, который проще всего заметить и исправить. Это «синтаксическая ошибка», потому что неверный символ, как запятая в этом случае, нарушает синтаксические правила языка.

Когда вы запускаете код с такой ошибкой, интерпретатор JavaScript — та штука, которая исполняет JavaScript-программы — пожалуется: SyntaxError и укажет вам на то место, где по его мнению есть проблема.

Если вы вызовете ads вместо abs, интерпретатор JavaScript пожалуется: ReferenceError: ads is not defined. Вы использовали, как вам кажется, существующее название, но на самом деле такого названия нет.

Несколько строк, которые следуют после указания ошибки, могут смутить и оттолкнуть вас, но они тут только для пользы. Это stack trace — последовательность вызовов функций, которая привела к ошибке. Когда вы запускаете свою программу, даже крошечную, она становится частью чего-то более крупного — сложной системой JavaScript-кода, который приводится в действие, чтобы оживить вашу программу. Тут видно, что проблема была в моём файле. Следующая строка — это место, откуда был вызван мой код, третья строка — откуда была вызвана вторая и в таком духе можно продолжать дальше. Это как отслеживать шаги в обратном направлении — проблема есть, и мы можем возвращаться по одному шагу назад и смотреть, не нашлась ли ошибка.

Мы допускаем, что вся внутренняя система исправно работает, поэтому ошибка в нашем коде. Когда одна из ваших функций вызывает другую, вы увидите эту последовательность вызовов в стектрейсе.

ReferenceError может случиться с другими константами: например, если ваш код содержит 10 * pi, а pi не существует, потому что вы не создавали константу с точно таким названием, вы получите ReferenceError.

И у нас получилось 32.22222222222222. Не 10. Что произошло? JavaScript не пожаловался, когда код запустился, никаких ошибок не выскакивало.

Компьютер не знает, что нам нужно, поэтому он производит вычисление, как мы его и просили. Но такое вычисление ошибочно — допустили ошибку мы. Нам нужно вначале вычесть 32, а потом умножить это на 5/9. Но мы не использовали скобки, поэтому 32 вначале умножилось на 5/9, а затем результат был отнят от температуры в фаренгейтах.

Это Логическая ошибка. Мы не нарушили никаких правил, мы просто сделали что-то не то. Наш пример был простым: мы написали функцию, запустили её и увидели неверный результат. Но представьте, что функция — это только маленькая частица крупной системы. Приложение для формирования бюджета в огромной организации отправляет отчёт в главную бухгалтерию, что в следующем месяце для оплаты счёта за электричество требуются дополнительные $300 000. Организуется экстренное собрание, увольняют людей, генеральный директор снова уходит в запой. Что случилось?

Иногда обнаружить проблему может оказаться трудной задачей: система кондиционирования ожидает, что январская температура будет 32 градуса по цельсию, вместо 10, потому что кто-то забыл использовать скобки в функции.

Борьба с логическими ошибками — это целиком ваша ответственность. И временами — тяжёлая работа, но в конце приходит сильное облегчение и удовлетворение: а-ааа, так вот в чём была проблема!

Теперь ваша очередь делать ошибки! Выполните тест и упражнение, чтобы ощутить боль.

Javascript.RU

Регистрация Вход в сайт

Форум

Учебник Node.JS скринкаст Стандарт языка

Справочник

Discord чат

 
Статьи Тест знаний Аналоги функций PHP  

Главная

» Справочник

» Объекты

»

ReferenceError

Илья Кантор, 14 мар 2009 — 14:06

  • Стандартные объекты

ReferenceError

Создание

new ReferenceError(message)

Аргументы

message
сообщение об ошибке

Ошибка ReferenceError генерируется при попытке обратиться к переменной, которая не была объявлена.


Наследует

Error

Автор: Гость (не зарегистрирован), дата: 5 апреля, 2013 — 00:48

#permalink

Скажите, пожалуйста, что означает фраза «не была объявлена»? Это что такое делают с этой переменной? ))

  • Ответить

Автор: Гость (не зарегистрирован), дата: 24 января, 2015 — 17:32

#permalink

var a;
console.log(a) // undefined
console.log(b) // ReferenceError при использовании strict mode
  • Ответить

Автор: Гость (не зарегистрирован), дата: 24 января, 2015 — 17:33

#permalink

PS извиняюсь, во втором случае Reference Error независимо от strict mode

  • Ответить

Автор: FeelUs, дата: 25 августа, 2016 — 11:33

#permalink

самое противное что

typeof undefined_variable

НЕ кинет исключение, а вернет undefined

  • Ответить

Автор: Шелкопряд (не зарегистрирован), дата: 24 июля, 2018 — 09:03

#permalink

Почему противное? Приятное. Undefined? Значит, устанавливаем значение. Или выбрасываем исключение, или что-то ещё.

  • Ответить

Автор: AhmedMalik (не зарегистрирован), дата: 26 января, 2023 — 23:51

#permalink

At first I built it on if and else, then prices for planet fitness I decided to make it more compact with switch.

  • Ответить

Автор: zeldatyt (не зарегистрирован), дата: 11 марта, 2023 — 05:27

#permalink

Я могу сказать, что автор потратил 2048 много времени и сил на исследование этой статьи, и это показывает

  • Ответить

Отправить комментарий

Приветствуются комментарии:

  • Полезные.
  • Дополняющие прочитанное.
  • Вопросы по прочитанному. Именно по прочитанному, чтобы ответ на него помог другим разобраться в предмете статьи. Другие вопросы могут быть удалены.
    Для остальных вопросов и обсуждений есть форум.

P.S. Лучшее «спасибо» — не комментарий, как все здорово, а рекомендация или ссылка на статью.

Ваше имя:

Адрес электронной почты:

Содержание этого поля является приватным и не предназначено к показу.

Домашняя страница:

Комментарий: *

  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешены HTML-таги: <strike> <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <u> <i> <b> <pre> <img> <abbr> <blockquote> <h1> <h2> <h3> <h4> <h5> <p> <div> <span> <sub> <sup>
  • Строки и параграфы переносятся автоматически.
  • Текстовые смайлы будут заменены на графические.

Подробнее о форматировании

CAPTCHA

Антиспам

Вопрос: *
1 + 3 =

Введите результат. Например, для 1+3, введите 4.

 

Поиск по сайту

Содержание

Учебник javascript

  • Введение
  • Основы javascript
  • DOM: работа с HTML-страницей
  • События
  • Объекты, ООП
  • AJAX
  • Особенности регулярных выражений в Javascript

Основные элементы языка

  • Базовые типы: Строки, Числа, Boolean
  • Операторы, их особенности в JS
  • Массивы
  • Функции
  • Замыкания
  • Регулярные выражения
  • Конструкции языка. Обработка ошибок.

Сундучок с инструментами

  • Редактирование и отладка скриптов
  • Cookie
  • HTTP-Отладка
  • Просмотр живого HTML
  • Разное полезное

Интерфейсы

  • Drag and drop
  • Грамотное javascript-дерево за 7 шагов
  • Интеграция AJAX в интерфейс
  • Координаты элемента на странице
  • Правильные show/hide/toggle
  • Удобное дерево с AJAX-подгрузкой

Все об AJAX

  • Введение в Ajax
  • Ajax и Rich Client
  • Ajax и клиент-серверная архитектура.
  • Способы общения с сервером
  • COMET
  • Форматы данных для AJAX
  • Обмен данными для документов с разных доменов
  • Обмен данными между доменами. Часть 2.

Оптимизация

  • Google Closure Compiler в деталях
  • Yahoo: лучшие способы ускорения сайта
  • Анализ оптимизации страниц c Yslow
  • Интерфейсы. Прочь от MVC
  • Оптимизация Javascript-кода
  • Польза от documentFragment
  • Сжатие Javascript и CSS
  • Улучшаем сжимаемость Javascript-кода.
  • Умное Кеширование и Версионность в Javascript/CSS

Разное

  • Асинхронное программирование
  • Google Gears в деталях
  • Javascript <-> Flash мост
  • Букмарклеты и правила их написания
  • О подборке книг на сайте
  • Почему <a href=»javascript:…»> — плохо
  • Способы идентификации в интернете
  • Уровни DOM
  • Что почитать?
  • Шаблонизация с javascript
  • Юнит-тесты уровня браузера на связке Selenium + PHP.
  • Справочники: Javascript/HTML/CSS
  • Система сборки и зависимостей Google Closure Library
  • Хранение данных на клиенте. DOM Storage и его аналоги.
  • 10 лучших функций на JavaScript

Дерево всех статей

Последние комментарии

  • I think this is a really good article…
    10 часов 32 минуты назад
  • slot-web-ตรง…
    11 часов 50 минут назад
  • If you want to learn more about a…
    12 часов 29 минут назад
  • Hum Rahe Na Rahe Hum Is Indain Tv Drama…
    13 часов 4 минуты назад
  • Prepare yourself for a hilarious and…
    14 часов 55 минут назад
  • Hi mates, fastidious piece of writing…
    17 часов 52 минуты назад
  • It’s a shame you don’t have a donate…
    17 часов 52 минуты назад
  • Hi to all, how is all, I think every…
    17 часов 52 минуты назад
  • I located the information very useful…
    17 часов 52 минуты назад
  • You make so many great points here that…
    18 часов 45 минут назад

Последние темы на форуме

  • Добавление своей кнопки в редактор Gutenberg (WordPress)
  • выводить случайные значения из массива переменной
  • Исправление скрипта под новую версию jQuery
  • Генерация изображений
  • Оцените функциональность
  • Timeout события mouseover
  • проверка существования js-класса на этапе инициалиации

Forum


© Илья Кантор, 2007-2021

О проекте —

Обратная связь —

Вверх

Объект ReferenceError представляет ошибку при ссылке на несуществующую переменную.

Syntax

new ReferenceError()
new ReferenceError(message)
new ReferenceError(message, options)
new ReferenceError(message, fileName)
new ReferenceError(message, fileName, lineNumber)

ReferenceError()
ReferenceError(message)
ReferenceError(message, options)
ReferenceError(message, fileName)
ReferenceError(message, fileName, lineNumber)

Примечание: ReferenceError() можно вызывать как с new , так и без него . Оба создают новый экземпляр ReferenceError .

Parameters

messageOptional

Человеческое описание ошибки.

optionsOptional

Объект,обладающий следующими свойствами:

causeOptional

Свойство,указывающее на конкретную причину ошибки.При перехвате и повторном отбрасывании ошибки с более конкретным или полезным сообщением об ошибке это свойство можно использовать для передачи исходной ошибки.

fileNameOptional Non-standard

Имя файла,содержащего код,который вызвал исключение.

lineNumberOptional Non-standard

Номер строки кода,вызвавшего исключение

Examples

Поймать ошибку в ссылке

try {
  let a = undefinedVariable
} catch (e) {
  console.log(e instanceof ReferenceError)  
  console.log(e.message)                    
  console.log(e.name)                       
  console.log(e.fileName)                   
  console.log(e.lineNumber)                 
  console.log(e.columnNumber)               
  console.log(e.stack)                      
}

Создание ссылочной ошибки

try {
  throw new ReferenceError('Hello', 'someFile.js', 10)
} catch (e) {
  console.log(e instanceof ReferenceError)  
  console.log(e.message)                    
  console.log(e.name)                       
  console.log(e.fileName)                   
  console.log(e.lineNumber)                 
  console.log(e.columnNumber)               
  console.log(e.stack)                      
}

Specifications

Browser compatibility

Desktop Mobile Server
Chrome Edge Firefox Internet Explorer Opera Safari WebView Android Chrome Android Firefox для Android Opera Android Safari на IOS Samsung Internet Deno Node.js
ReferenceError

1

12

1

5.5

5

1

4.4

18

4

10.1

1

1.0

1.0

0.10.0

See also

  • Error


JavaScript

  • RangeError() constructor

    Конструктор RangeError()создается,когда значение не входит в набор допустимых значений.

  • ReferenceError

    Объект ReferenceError представляет текущую область, на которую ссылается, когда несуществующая переменная еще не была инициализирована.

  • Reflect

    Reflect-это встроенный объект,который предоставляет методы для взаимодополняемых операций JavaScript.

  • Reflect.apply()

    Статический метод Reflect.apply()вызывает целевую функцию с указанными аргументами.

Возможно, вам также будет интересно:

  • Сделайте стилистическую правку предложений назовите характер ошибок
  • Сделайте вывод какие ошибки нельзя допускать при наложении горчичников
  • Сегодня холодно поэтому я одела шубу исправить ошибки
  • Сегодня холодно поэтому я надела шубу исправить ошибки
  • Сегодня состоялась первая премьера фильма исправить речевые ошибки ответы

  • Понравилась статья? Поделить с друзьями:
    0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии