未声明 Javascript 警报中的 JSLint 混淆

Posted

技术标签:

【中文标题】未声明 Javascript 警报中的 JSLint 混淆【英文标题】:JSLint confusion in Javascript alerts are not declared 【发布时间】:2017-06-25 13:00:44 【问题描述】:

嘿,所以我在假设我使用浏览器并容忍多个变量和空白混乱的情况下使用 JSLint。 根据 JSLint 的说法,整个程序都可以工作,但我有一些问题。首先,我正在尝试使用 alert(string) 来制作弹出错误消息,但 JSLint 告诉我警报未声明,我还没有在互联网上找到解释如何使这种情况不会发生的资源.

其次,我有如下所示的循环:

function setMixedList() 
  "use strict";
  clearResults(); 
  var n = "0";
  var l = "0";
  var text = "";
  while (n < numList.length && l < letList.length) 
    document.getElementById("listInput").value = 
    text += numList[n] + letList[l];
    n ++;
    l ++;
  

这个循环特别需要两个单独的数组并将它们按顺序混合在一起;一个包含数字 (1-7),另一个包含字母 (a-g),因此它们出现在如下文本框中:

1 a 2 b 3 c 4 d 5 e 6 f 7 g 

JSLint 不喜欢这方面的两件事。第一个是在

 document.getElementById("listInput").value = 
        text += numList[n] + letList[l];

循环部分,JSLint 告诉我“+=”是意外的。当我将其编辑为:

text = text + numList[n] + letList[l];

JSLint 告诉我“=”是出乎意料的,我不确定如何在不使我的程序无法工作的情况下取出这些东西。

另一个重要的部分是

n ++;
l ++;

代码部分。我知道 JSLint 不喜欢 ++,但如果我编写代码

n+= 1;
l+= 1;

字符串输出不正确,有些字符未定义,因为我不只是处理数字。有人知道如何解决这些问题吗?

【问题讨论】:

你为什么要增加一个字符串? 我对 JS 太陌生,不知道我在做什么有什么问题 你应该有text += numList[n] + letList[l];部分在循环中,然后document.getElementById("listInput").value = text;循环之后。 谢谢 nnnnnn,它帮助我解决了 += 问题。 没有人能帮我处理未声明的警报吗? 【参考方案1】:

回答第一部分

JSLint 告诉我警报

这可以通过以下一种方式解决。在jslint 选项集中 "devel:true" 将启用警报、控制台、提示等功能。查看此link 以了解更多信息。

其次,在您的 .jshintrc 中将 browser 选项设置为 true 并使用 window.alert 而不是 alert

【讨论】:

考虑到我必须完成的任务,我无法将“开发中”假设设置为“真”。此外,使用 window.alert 让 JSLint 现在告诉我窗口未定义。

以上是关于未声明 Javascript 警报中的 JSLint 混淆的主要内容,如果未能解决你的问题,请参考以下文章

Firefox 上未显示 Javascript 警报框

JavaScript:读取文件夹中的文件

警报框未显示。 X 代码是跳过 Swift 中的警报框代码

JavaScript 警报在 Firefox 6 中不起作用

警报对话框中的 TextView 未居中或未格式化

iOS - 未调用警报视图中的 segue