【发布时间】:2019-11-24 10:29:18
【问题描述】:
很久没用Javascript了,试着搞懂什么是es6、modules和iife。
所以我做了一小段代码:
{
'use strict';
let version = '1.0.0';
function init(){
/* ... */
}
window.Test = {
version: version,
init: init
};
}
而 jshint 返回此错误:函数声明不应放在块中。使用函数表达式或将语句移到外部函数的顶部。
但是,如果我使用 es5 格式 (function(){...}()) 没有问题。那我误会了什么?
此外,如果有人有时间再回答一些问题:
- 'use strict' 是必要的还是多余的?
- 我使用 iife,但它也是一个模块吗? (我想,我对这部分有很大的误解)
- window.Test 是导出我的变量 Test 的最佳方式吗?
提前感谢您的回答,Sam。
编辑:了解模块的好视频:https://www.youtube.com/watch?v=qJWALEoGge4
【问题讨论】:
-
“我使用 iife” - 不,您的示例中没有 IIFE。
-
你如何处理这段代码?它是由其他东西导入的,还是 init() 做了你想做的一切?
-
为什么它不是 IIFE ?看到这些网站后,我认为是这样:es6-features.org/#BlockScopedFunctionsjack.ofspades.com/es6-iife-with-fat-arrow-functions
-
我在 html 页面中使用它,函数 init 仅用于示例,我有很多函数可以放入这个脚本中,我想通过使用测试来像 API 一样使用它变量。
标签: javascript ecmascript-6 es6-modules jshint iife