我对规则中的eslint警告感到困惑no-use-before-define
:
这个规则对于避免函数表达式引起的错误非常有意义,例如
// Case 1:
// Incorrect code; eslint warns me for good reason:
runMe() // Error: Cannot access 'runMe' before initialization
const runMe = () => { alert('expression, not hoisted') }
Run Code Online (Sandbox Code Playgroud)
然而,在声明函数时,在函数定义之前调用它是完全可以的(感谢 JS 提升机制)
// Case 2:
// Correct code; for what reason does eslint warns me about this?
runMe() // Works!
function runMe() { alert('definition, hoisted') }
Run Code Online (Sandbox Code Playgroud)
是否有原因,为什么eslint以相同的方式处理这两种情况(即它是否使脚本运行得更快/禁用提升/有一些其他影响)?
第二个问题:我可以将eslint配置为仅警告我第一种情况,但将声明性函数样式视为有效吗?
归档时间: |
|
查看次数: |
6241 次 |
最近记录: |