gpt4 book ai didi

javascript - 即使设置了 undef,jsLint 仍然发出警告 "X was used before it was defined."

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:20:10 25 4
gpt4 key购买 nike

最近 js 文件中的错字导致我的一个项目出现问题,但仅在某些浏览器上出现问题。我正在尝试通过 jsLint 运行我们的大部分 js 文件以查找任何其他未检测到的问题。目标是让我们所有的 js 文件通过 jsLint,要么通过更正问题,要么如果我对问题没问题,然后打开适当的 jsLint 选项。

如果我能做到这一点,那么将来我想找到一种更频繁地运行 jsLint 的方法,但首先我需要让所有文件都通过。

不过,我在一个问题上遇到了很多麻烦。我不断收到“X 在定义之前已被使用”的警告/错误。我可以在定义之前使用项目,所以我想关闭此警告。我已经尝试在顶部的评论中设置 undef: true 并通过网络界面设置复选框,但截至今天,我仍然收到此错误。

这个选项是坏了还是我做错了什么或者误解了这个选项的作用。

根据docs ,这应该适用于功能。

我目前正在使用 jsLint web tool扫描下方二维码。

/*jslint undef: true, white: true, browser: true */
/*global jQuery */

(function($){
"use strict";

$(function() {
createDashboard();
loadDashboardDataFromControls();
});

function loadDashboardDataFromControls()
{
}

function createDashboard()
{
}
}(jQuery));

最佳答案

根据JSLint source code (截至撰写本文时的最新提交),undef严格模式 中是 false:

function use_strict() {
if (next_token.string === 'use strict') {
if (strict_mode) {
warn('unnecessary_use');
}
edge();
advance();
semicolon();
strict_mode = true;
option.undef = false;
return true;
}
return false;
}

我假设您已经知道,您可以通过重新排列源代码轻松避免警告。只需将 loadDashboardDataFromControls()loadDashboardDataFromControls() 移动到 $([...]) 之上。

注意:在严格模式下,变量需要在使用前定义,您的代码显然没有违反该规则。因此,在我看来,我们看到的至少是一个文档错误:JSLint 文档应该说明在严格模式下,undef 标志设置为 false

关于javascript - 即使设置了 undef,jsLint 仍然发出警告 "X was used before it was defined.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12013406/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com