美文网首页
22.module的语法

22.module的语法

作者: 甘草子XS | 来源:发表于2020-12-24 10:05 被阅读0次
1.概述

历史上,JavaScript一直没有模块(module)的体系,无法将一个大程序拆分成互相依赖的小文件,再用简单的方法拼装起来。其他语言都有这项功能,比如Ruby的requrire,Python的import,甚至就连css都有@import,但是JavaScript任何这方面的支持都没有,这对开发大型的、复杂的项目形成了巨大的障碍。

在ES6之前,社区制定了一些模块加载方案,最主要的有CommonJS和AMD两种。前者用于服务器,后者用于浏览器。ES6在语言标准的层面上,实现了模块功能,而且实现的相当简单,可以完全取代CommonJS和AMD规范,成为浏览器和服务器通用的模块解决方案。

ES6模块的设计思想是尽量的静态化,使得编译时就能确定模块的依赖关系,以及输入和输出的变量。CommonJS和AMD模块,都只能在运行时确定这些东西。比如,CommonJS模块就是对象,输入时必须查找对象属性。

// CommonJS 模块
let { stat , exists , readFile } = require('fs');

// 等同于
let _fs = require('fs');
let stat = _fs.stat;
let exists = _fs.exists;
let readFile = _fs.readFile;

上面代码的实质是整体加载fs模块(即加载fs的所有方法),生成一个对象(_fs),然后再从这个对象上面读取3个方法。这种加载成为“运行时加载”,因为只有运行时才能得到这个对象,导致完全没有办法在编译时做“静态优化”。

ES6模块不是对象,而是通过export命令显示指定输出的代码,再通过import命令输入。

相关文章

  • 22.module的语法

    1.概述 历史上,JavaScript一直没有模块(module)的体系,无法将一个大程序拆分成互相依赖的小文件,...

  • GO语言gin框架实战-04-websocket链接

    1. 升级接口 1.1 语法 - 升级接口 语法 语法示例 - 关闭 语法 语法示例 - 接收前端信息 语法 语法...

  • 软帝学院:80道java基础部分面试题(四)

    Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语法,集...

  • JSON 语法

    JSON 语法是 JavaScript 语法的子集。 JSON 语法规则 JSON 语法是 JavaScript ...

  • Java语法糖汇总解析

    Java语法糖: 语法糖(Syntactic Sugar),也称糖衣语法,指在计算机语言中添加的某种语法,这种语法...

  • PySide2信号与槽连接新语法注意地方

    旧语法 旧语法采用了SIGNAL ()和SLOT()宏 新语法 新语法采用了python的风格 新语法注意地方 把...

  • Java面试题知识点

    1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...

  • Java初级面试题

    1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...

  • Swift语法糖的使用

    Swift语法糖的使用 语法糖的简介 语法糖Selector例子 语法糖的简介 我个人对语法糖的理解就是让你的代码...

  • art-template模板

    art-template同时支持两种模板语法:标准语法 和 原始语法 标准语法: {{ 数据 }}原始语法: <%...

网友评论

      本文标题:22.module的语法

      本文链接:https://www.haomeiwen.com/subject/akeziqtx.html