如何修复';函数声明不应放在块';Javascript es6中的错误?
在很长一段时间没有使用Javascript之后,我试图理解什么是es6、模块和iife 所以我写了一段代码:如何修复';函数声明不应放在块';Javascript es6中的错误?,javascript,ecmascript-6,es6-modules,jshint,iife,Javascript,Ecmascript 6,Es6 Modules,Jshint,Iife,在很长一段时间没有使用Javascript之后,我试图理解什么是es6、模块和iife 所以我写了一段代码: { 'use strict'; let version = '1.0.0'; function init(){ /* ... */ } window.Test = { version: version, init: init }; } jshint返回这个错误:函数声明不应该放在块中。
{
'use strict';
let version = '1.0.0';
function init(){
/* ... */
}
window.Test = {
version: version,
init: init
};
}
jshint返回这个错误:函数声明不应该放在块中。使用函数表达式或将语句移动到外部函数的顶部
但是,如果我使用es5格式(function(){…}()),就没有问题了。那么我误解了什么呢
此外,如果有人有时间再回答一些问题:
- “严格使用”是必要的还是多余的
- 我使用生命,但它也是一个模块吗?(我想,我对这部分有很大的误解)
- 导出变量测试的最佳方法是什么
“严格使用”
是必要的还是多余的
这里使用的方法不起作用,因为指令序言只能放在函数中(或模块或脚本的开头),而不能放在块中
我使用生命,但它也是一个模块吗
不,您在这里没有使用。只是一个街区,但是
它确实实现了模块模式(“创建一个可以访问私有范围内部的对象”),但它不是ES6模块
window.Test
导出变量Test
的最佳方法是什么
不,我建议用
var
“我使用iife”来声明它-不,在你的例子中没有iife。你用这段代码做什么?它是由其他东西导入的,还是init()做了你想做的一切?为什么它不是一种生活?看到这些网站后,我觉得情况就是这样:我在html页面中使用它,函数init只是一个例子,我有很多函数要放在这个脚本中,我想通过使用测试变量将它像API一样使用。我想,我现在明白了。谢谢