javascript - 帮忙解决几个js的问题
PHP中文网
PHP中文网 2017-04-11 11:53:30
[JavaScript讨论组]

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的区别,他们的运行机制是怎样的?

PHP中文网
PHP中文网

认证0级讲师

全部回复(2)
PHP中文网

问题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。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号