我通过简单地添加var alert;
来修复此问题但是,这是我应该做的让错误的消息消失吗?这是修复。这是www.jshint.com上的失败。
我正试图从它抛出的错误中吸取教训......不一定会让它们消失。
(function () {
"use strict";
var alert; // added this in to fix
function initialize_page()
{
alert ("hi");
}
addEventListener('load', initialize_page);
})();
答案 0 :(得分:61)
This文档说明了browser
选项的以下内容:
此选项定义了现代浏览器公开的全局变量:从优秀的文档和导航器到HTML5 FileReader以及浏览器世界中的其他新开发。 注意:此选项不会公开警报或控制台等变量。有关详细信息,请参阅选项devel。
以及关于devel
选项的以下内容:
此选项定义通常用于记录穷人调试的全局变量:控制台,警报等。通常最好不要在生产中发送它们,因为例如,console.log中断了旧版Internet Explorer。
您已启用浏览器且已禁用开发。您可以使用jshint原始页面上“Assume”下的复选框控制这些。我还建议注意文档中的警告; - )
答案 1 :(得分:59)
而不是
alert('message')
你应该使用
window.alert('message');
因为这种方法is defined in window
object。
这当然假设您在browser
中将true
选项设置为.jshintrc
,这样jshint就会知道窗口对象已曝光。
"browser" : true, // Standard browser globals e.g. window, document.
*同样的事情发生在confirm()
。
答案 2 :(得分:25)
在选项中设置“devel:true”。这可以实现警报,控制台等功能。
请参阅此处的文档:http://jshint.com/docs/options/
答案 3 :(得分:0)
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]));
答案 4 :(得分:0)
使用.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
}
}
答案 5 :(得分:-2)
而不是:
alert('message')
我用:
var alert = window['alert'];
答案 6 :(得分:-5)
尝试传递窗口对象:
(function (global) {
"use strict";
var alert; // added this in to fix
function initialize_page()
{
global.alert ("hi");
}
addEventListener('load', initialize_page);
})(window);
答案 7 :(得分:-7)
将警报声明为变量,它将在没有任何设置的情况下工作:
例如:
var alert;
alert('hello world');