Javascript ES6模块范围
我有密码:Javascript ES6模块范围,javascript,module,ecmascript-6,Javascript,Module,Ecmascript 6,我有密码: // lib.js var a = "a"; export var b = "b"; // main.js console.log(a); // "a" variable is not available in a global scope import {b} from "lib"; console.log(a); // is "a" variable available in a global scope or only in a module scope? 在模块导入后,我
// lib.js
var a = "a";
export var b = "b";
// main.js
console.log(a); // "a" variable is not available in a global scope
import {b} from "lib";
console.log(a); // is "a" variable available in a global scope or only in a module scope?
在模块导入后,我可以在全局范围内使用“a”变量吗?还是它仅在模块范围内可用?ES6模块是否具有类似于此技巧的工作原理:
// module
exports.module1 = (function(){ var a = "a"; })(); // "a" variable is not available in a global scope
在模块导入后,我可以在全局范围内使用“a”变量吗?还是它仅在模块范围内可用
它只在声明它的模块中可用
ES6模块是否会有类似的工作原理,如以下技巧:[……]
基本上是的
ES6有以下几种作用域,从“顶部”到“底部”依次为:
- 全球范围
- 模块范围
- 功能范围
- 块范围
var b='b'
,但没有导出var a='a'
。这意味着您只能在lib.js
中使用var a='a'
,它是在其中声明的模块的本地,并且只能在该模块中使用var a
的作用域是lib.js
模块 您可以执行globalThis.a=“a”
并在加载该模块后访问它。见: