ошибка: 'ПУСТОЙ УКАЗАТЕЛЬ' не был объявлен в этом объеме

Решение

Просто поместите точку с запятой (;) после console.log( ... ).


Пояснение

Ошибка легко воспроизводится следующим образом:

console.log()
(function(){})

Он пытается передать function(){} в качестве аргумента в возвращаемое значение из console.log(), который сам по себе не является функцией, а фактически undefined (проверьте typeof console.log();). Это объясняется тем, что JavaScript интерпретирует это как console.log()(function(){}). console.log однако является функцией.

Если у вас не было объекта console, вы увидите

ReferenceError: console не определено

Если у вас есть объект console, но не метод log, вы увидите

TypeError: console.log не функция

Однако у вас есть

TypeError: console.log (...) не является функцией

Обратите внимание на (...) после имени функции. С этими словами это относится к возвращаемому значению функции.


Уважать ;

Все эти фрагменты кода приводят к разным неожиданным ошибкам, если точки с запятой отсутствуют :

console.log() // As covered before
() // TypeError: console.log(...) is not a function

console.log() // Accessing property 0 of property 1 of the return value…
[1][0] // TypeError: console.log(...) is undefined

console.log() // Like undefined-3
-3 // NaN

Другой пример

Вы часто видите (...) с использованием цепных методов или аксессуаров с цепными свойствами:

string.match(/someRegEx/)[0]

Если этот RegEx не найден, метод вернет null, а свойство accessor на null приведет к TypeError: string.match(...) is null - возвращаемому значению будет null. В случае console.log(...) возвращаемое значение было undefined.

116
задан jackhab 20 January 2009 в 17:13
поделиться

2 ответа

NULL не ключевое слово. Это - идентификатор, определенный в некоторых стандартных заголовках. Можно включать

#include <cstddef>

Для имения его в объеме, включая некоторые другие основы, как std::size_t.

172
ответ дан Johannes Schaub - litb 5 November 2019 в 08:59
поделиться

NULL не ключевое слово; это - макроподстановка для 0 и прибывает в stddef.h или cstddef, я верю. Вы не имеете #included соответствующий заголовочный файл, таким образом, g ++ видит NULL как регулярное имя переменной, и Вы не объявили его.

10
ответ дан taskinoor 5 November 2019 в 08:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: