相关疑难解决方法(0)

如何修复JSlint报告的"foo未定义"错误?

可能重复:
JSLint:在定义之前使用过

我跑JSlint,看到这样的错误:

'foo' is not defined.
var x = foo();

foo是另一个JavaScript文件中定义的函数foo.js.据我所知,没有"import/require"指令JavaScript来引用foo另一个源文件中定义的函数.

如何修复此错误JSlint

javascript jslint

54
推荐指数
1
解决办法
2万
查看次数

为什么JSLint抱怨:"someFunction()在被定义之前被使用了"?

搜索JSLint错误"在定义之前使用过"我发现了这些:

问题

这些答案都不是为什么显示错误.

根据ECMA-262规范函数在执行开始之前进行评估,因此使用该function关键字声明的所有函数都可用于与它们被声明的位置相关的所有代码(假设它们在该范围内是可访问的).

这也称为吊装.

Douglas Crockford似乎认为最好在使用它的代码之前声明每个函数,而不管提升效果如何.

根据StackOverflowNewbie在他的问题中,这引发了一些代码组织问题.更不用说像我这样的人喜欢在main/init代码下声明他们的功能.

在这些问题上,有一些方法可以避免或修复错误,例如使用函数表达式和函数声明.但他们都没有告诉我错误的原因.甚至不是Crockford的网站.

问题(S)

为什么在声明之前调用函数是错误的,即使它是使用function关键字声明的?

在JSLint上下文中使用函数表达式而不是函数声明是否更好?如果首选,为什么?

注意

寻找像这样的答案:

  • 克罗克福德是一个暴君
  • 只是克罗克福德的意见

谢谢 :*

javascript jslint hoisting

5
推荐指数
1
解决办法
1151
查看次数

使用console.log()时抛出JSLint错误

我使用的文本编辑器是Brackets.我尝试console.log在任何JS文件中使用时遇到错误消息.

1 - 创建/打开JS文件

2 - 输入console.log('hello world');

3 - 保存文件

JSLint问题:

error message in JSLint 'console' was used before it was defined.

javascript text-editor

4
推荐指数
1
解决办法
1万
查看次数

"[变量]在定义之前使用"错误

我有几个这些错误,我不知道如何"正确"解决它,问题是我有很多javascript文件(分离,以便于维护),我包括插件等.

所以在这个例子中我使用来自http://www.openjs.com/scripts/events/keyboard_shortcuts/的快捷方式

这只是定义了快捷方式

shortcut = {.......
Run Code Online (Sandbox Code Playgroud)

然后,当我在我的代码中使用它时

 shortcut.add("F1", function () { showDialog(); }, { 'type': 'keydown', 'propagate': false, 'target': editor_document });
Run Code Online (Sandbox Code Playgroud)

jslint会抱怨

JS Lint:在定义之前使用了'快捷方式'.

我也有自己的代码,我使用在其他文件中声明的函数,所以解决这个问题的"正确"方法是什么

javascript jquery jslint

2
推荐指数
1
解决办法
3960
查看次数

标签 统计

javascript ×4

jslint ×3

hoisting ×1

jquery ×1

text-editor ×1