1. 两个a,b两个js文件,a里面写的是闭包的方法,b文件里怎么去调用,或者说这两个文件怎么进行数据通信(就是es5中的使用)
2.
var a = 1;
delete a;//false
alert(a)//1
// -----------------------------------
a = 1;
delete a;//true
alert(a);//d is not defined
// -------------------------------------
eval('var a = 1');
delete a;//true
alert(a);//d is not defined
上面这三段代码的结果,为什么用var定义和后两个的结果不一样?这怎么理解?
3. 想问问模块化中的require与import的区别,他们的运行机制是怎样的?
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
问题1:可以用ES6的import, exports,也可以利用nodejs的require和exports/module.exports
问题2:一楼已给正解
问题3:Import是ES6语法,require是nodejs的全局方法,做模块导入
我只针对楼上没回答清楚的问题三做个解答,他们之间的区别如下:
require这种加载称为“运行时加载”,只有运行时才能得到这个对象。
import是ES6的加载机制,这种加载称为“编译时加载”或者静态加载,即ES6可以在编译时就完成模块加载,效率要比 CommonJS模块的require加载方式高。
ES6模块的设计思想,是尽量的静态化,使得编译时就能确定模块的依赖关系。import的加载机制使得静态分析成为可能,例如类型检验什么的,所以在支持ES6的语法情况下,我建议用import。