运行www.jshint.com时未定义“alert”

时间:2011-11-17 19:52:06

标签: javascript

我通过简单地添加var alert;来修复此问题但是,这是我应该做的让错误的消息消失吗?这是修复。这是www.jshint.com上的失败。

我正试图从它抛出的错误中吸取教训......不一定会让它们消失。

(function () {

"use strict";

var alert;  //  added this in to fix

function initialize_page()
  {
  alert ("hi");
  }

addEventListener('load', initialize_page);

})();

8 个答案:

答案 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');