"alert" не определяется при запуске www.jshint.com
Я исправил это, просто добавив var alert;
Однако, это то, что я должен делать, чтобы уйти от сообщения об ошибке? Вот исправление. Вот провал www.jshint.com.
Я пытаюсь учиться на ошибке, которую он бросает. Не обязательно заставлять их уходить.
(function () {
"use strict";
var alert; // added this in to fix
function initialize_page()
{
alert ("hi");
}
addEventListener('load', initialize_page);
})();
Ответы
Ответ 1
В этой документации говорится о опции browser
:
Этот параметр определяет глобальные переменные, открытые современными браузерами: от хорошего документа и навигатора до HTML5 FileReader и других новых разработок в мире браузера.
Примечание. Этот параметр не предоставляет переменные, такие как предупреждение или консоль. Для получения дополнительной информации см. Опцию разработки.
и следующее о опции devel
:
Этот параметр определяет глобальные переменные, которые обычно используются для регистрации плохой отладки: консоли, предупреждения и т.д. Обычно рекомендуется не отправлять их на производство, потому что, например, console.log разбивается на устаревшие версии Internet Explorer.
У вас включен браузер и отключено. Вы можете управлять ими с помощью флажков в поле "Предположите" на исходной странице jshint. Я также рекомендую прислушаться к предупреждению в документации; -)
Ответ 2
Вместо
alert('message')
вы должны использовать
window.alert('message');
Поскольку этот метод определяется в window
объекте.
Это, конечно, предполагает, что у вас есть опция browser
, установленная на true
в вашем .jshintrc
, так что jshint будет знать, что объект окна открыт.
"browser" : true, // Standard browser globals e.g. window, document.
* То же самое происходит с confirm()
.
Ответ 3
Установите "devel: true" в "Параметры". Это позволяет использовать такие функции, как оповещение, консоль и т.д.
См. документацию здесь: http://jshint.com/docs/options/
Ответ 4
function prod(arr) {
let largest = 0;
let secondLargest = 0;
const len = arr.length;
for (let i = 0; i < len; i++) {
if (arr[i] > largest) {
secondLargest = largest;
largest = arr[i];
}
else if (arr[i] < largest && arr[i] > second_largest) {
secondLargest = arr[i]
}
}
return largest * secondLargest;
}
console.log(prod([2, 4, 7, 8]));
Ответ 5
использовать файл.jshintrc
в js alert (data.status); или window.alert(data.status);
"window": true,
"alert": true
или лучше
"devel": true,
{
"esversion": 6,
"browser": true,
"undef": true,
"varstmt": true,
"forin": true,
"unused": true,
"funcscope": true,
"lastsemic": true,
"moz": true,
"jquery": true,
"module": true,
"devel": true,
"globals": {
"window": true,
"document": true,
"console": true,
"alert": true
}
}
Ответ 6
Вместо:
alert('message')
Я использую:
var alert = window['alert'];
Ответ 7
попробуйте передать объект окна в:
(function (global) {
"use strict";
var alert; // added this in to fix
function initialize_page()
{
global.alert ("hi");
}
addEventListener('load', initialize_page);
})(window);
Ответ 8
объявить предупреждение как переменную, и он будет работать без каких-либо настроек:
например:
var alert;
alert('hello world');