运行www.jshint.com时未定义"alert"

51 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);

})();
Run Code Online (Sandbox Code Playgroud)

Bor*_*rić 63

代替

alert('message')
Run Code Online (Sandbox Code Playgroud)

你应该使用

window.alert('message');
Run Code Online (Sandbox Code Playgroud)

因为此方法是在windowobject中定义的.

这当然假设你在你的browser选项中设置了选项,所以这样jshint就会知道窗口对象是暴露的.true.jshintrc

"browser"       : true,     // Standard browser globals e.g. window, document.
Run Code Online (Sandbox Code Playgroud)

*同样的事情发生在confirm().

  • 这是保持浏览器的唯一解决方案:true.在我看来,这使得这是最好的解决方案. (2认同)

Ada*_*man 61

文档说明了以下关于该browser选项:

这个选项定义了现代浏览器公开的全局变量:从优秀的文档和导航器到HTML5 FileReader以及浏览器世界的其他新开发.注意:此选项不会公开警报或控制台等变量.有关更多信息,请参阅选项devel.

以及关于该devel选项的以下内容:

此选项定义通常用于记录穷人调试的全局变量:控制台,警报等.通常最好不要在生产中发送它们,例如,在旧版Internet Explorer中,console.log会中断.

您已启用浏览器并禁用了devel.您可以使用jshint原始页面上"Assume"下的复选框控制这些.我还建议注意文档中的警告;-)


Jos*_*hua 25

在选项中设置"devel:true".这可以实现警报,控制台等.

请参阅此处的文档:http://jshint.com/docs/options/