最新要闻
- 【环球快播报】公园飞无人机 被男子一板凳拍在地上:怕伤到孩子
- 环球新消息丨为1个亿目标 26岁“背景太假哥”拼了:每天冒严寒、酷暑直播
- 全球看点:智慧管理+贴心服务,这座网红公厕不“简单”
- RTX 4070笔记本挤牙膏?只比RTX 3070快了11%
- 天天热资讯!史上第25个!浙江彩民69元中2.4亿元巨奖 网友调侃:又骗我买彩票
- 全球热讯:不能“回血”了!微软大作《红霞岛》实体版仅提供激活码
- 0反式脂肪酸!旺旺邦德轻乳咖啡官方清仓:9瓶1盒仅19.9元
- 目标基辅号
- 环球观点:鹡鸰女神第2集-鹡鸰女神无修版
- 环球新动态:雷军宣布小米参加MWC 2023大会!铁大、铁蛋机器人海外亮相
- 上海一特斯拉再现失控事故:成道路护栏“终结者”
- 全球实时:插混和增程路线谁更好?院士欧阳明高给出答案
- 上海中环内圈发生单车事故 官方通报:车辆起火翻滚地面 驾驶员死亡
- 全球新资讯:ChatGPT大火 马斯克批OpenAI违背初心:被微软控制 只顾赚钱
- 贵南高铁全线静态验收:时速350公里 南宁到贵阳时间缩短一半
- 世界观热点:蹲夜叉还有意外收获?变异蝴蝶直接就往脸上刷啊!
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
观焦点:Module理解及使用
ES6
的模块化设计思想是静态化,也就是说,在编译的时候确定模块的依赖关系,以及输出输出入的变量。而CommonJS
和AMD
模块都是在运行时确定的。ES6
的模块不是对象,而是通过export
显示指定输出的代码,再通过import
命令输入。
// 模块输入import { start,address } from "util"
上面的模块输入加载了两个方法,即使util
模块内有其它方法也不会加载,只会加载上面引入的两个方法,这种加载称为“编译时加载
”或静态加载
。
需要注意的是,ES6
的模块自动采取严格模式,不管头部有没有加上"use strict"
都会开启严格模式。严格模式的限制如下:
(资料图片)
1、变量必须先声明再使用2、函数参数不能有同名属性,否则报错3、不能使用with
语句4、不能对只读属性赋值,否则报错5、不能使用前缀0
表示八进制数,否则报错6、不能删除不可删除的属性,否则报错7、不能删除变量delete prop
,会报错,只能删除属性delete global[prop]
8、eval
不会在它的外层作用域引入变量9、eval
和arguments
不能被重新赋值10、arguments
不会自动反映函数参数的变化11、不能使用arguments.callee
12、不能使用arguments.caller
13、禁止this
指向全局对象14、不能使用fn.caller
和fn.arguments
获取函数调用的堆栈15、增加了保留字(比如protected
、static
和interface
)
export和import命令
模块主要有export
和import
构成,export
规定模块对外的接口,import
用于输入模块提供的功能。模块导出
// util模块// 类型function type(a){ return typeof a}// 计算function sum(a,b) { return a * b }// 判断是否为数组function isArray(a) { return a instanceof Array}export { type,sum } // 按需导出
模块导入
import { type,sum } from "./util"let num = sum(10,5)console.log(num) // 50
上面两种方式是可选的方式导出的,也就是说,import
导入模块的时候,只会加载export
导出的方法,其它的方法不会被import
加载,并且import
引入util
模块可以按需引入,引入自己需要的模块即可,其它未引入的模块也不会加载,这也就是静态加载的好处。
除了export { xxx,xxx }
的按需导出外,ES6
还提供了export default
的默认导出,默认导出的方法,在import
导入的时候,不需要跟导出名一直,可以自定义名称接收导出的方法。
// util模块// 计算function sum(a,b) { return a * b }// 判断是否为数组function isArray(a) { return a instanceof Array}export default sum // 默认导出
import aaa from "./util" // 导入时名字可以自定义let num = aaa(10,5)console.log(num) // 50
其实这个default
就是一个叫做default
的变量,这个变量可以被任意命名,在import
导入的时候,取任何名称都可以匹配上default
导出的方法。
按需和默认导出export { xxx,xxx }
和export default
默认导出可以同时使用
// util模块function type(a){ return typeof a}function sum(a,b) { return a * b }function isArray(a) { return a instanceof Array}export { type,sum }export default isArray
// 导入import { type,sum }from "./util" import aaa from "./util"
模块的整体加载
上面的导出方法都是加载模块内对应的方法,模块的整体加载要使用*
,也就是加载全部,语法如下
import * as util from "./util";// 在页面中使用let num = util.sum(10,5)console.log(num) // 50
这种写法是将模块整体加载,用*
指定一个对象,所有输出的值都加载在这个对象上面。通过该对象.方法名来获取对应方法。需要注意的是,ES6
的模块是静态分析
的,不允许对模块进行改变
,所以下面写法是不允许的:
util.sum = "hello" // 报错util.sum = function () {} // 报错
模块继承
模块之间也是可以继承的,假设A
模块继承了B
模块
// A模块function sum(a,b) { return a * b }function isArray(a) { return a instanceof Array}export * from "B" // 输出B模块的所有属性和方法,忽略模块内的default方法export { sum } export default isArray
export *
命令会忽略B
模块的default
方法,因为A
模块内部有自己的default
方法。
模块的重命名
// util模块export { sum as s }// 页面import { s } from "./util" // 引入命名后的方法
模块按需引入import()
正常情况下import
是需要在页面顶层引入的,并且import
的引入执行的优先级是最高的,例如:
let s = sum(10,5)import { sum } from "./util"
上面这种写法是允许的,程序会执行import
的引入,然后再执行let s = sum(10,5)
,但这种写法会默认导入模块,并且是在顶层导入。es6
提供了动态导入功能:import()
,当程序执行到该语句的时候才会导入,并且是同步执行,import()
返回的是一个Promise
,所以可以使用then
方法和async-await
。Promise写法
import("./util.js").then(el=>{ console.log(el.t(100)); // number console.log(el.sum(10,5)); // 50})
async-await写法
async function getImport(){ let { sum } = await import("./util.js") console.log(sum(2,8));}getImport() // 16
也可以通过解构的方式获取
import("../module/import.js").then(({sum})=>{ console.log(sum(20,5)); // 100})
如果模块是default
默认导出,其实default
就是一个键名
import("../module/import.js").then((e)=>{ console.log(e.default([1,2,3])); // true})
default
也可以通过具名的形式导入(取别名)
import("../module/import.js").then(({default : isA})=>{ console.log(isA([1,2,3])); // true})
import.meta
在使用一个模块时,有时候需要知道该模块本身的信息(比如模块的路径),import
命令新增了一个元属性import.meta
,可以返回当前模块的信息。注意:import.meta
只能在模块内使用,在模块外使用会报错
// util模块function sum(a,b) { return a * b }function getMeta(){ return import.meta // 获取当前模块的元信息}export { sum,getMeta }
// console.log(import.meta); // import.meta只能在模块内使用,在模块外部使用会报错import("./util.js").then(el=>{ console.log(el.getMeta()); // {url: "http://127.0.0.1:5500/module/import.js", resolve: ƒ}})
案例源码:https://gitee.com/wang_fan_w/es6-science-institute
如果觉得这篇文章对你有帮助,欢迎点亮一下star哟
-
环球今日报丨【算法训练营day49】LeetCode121. 买卖股票的最佳时机 LeetCode122. 买卖股票的最佳时机II
LeetCode121 买卖股票的最佳时机题目链接:121 买卖股票的最佳时机独上高楼,望尽天涯路感觉贪心会更...
来源: -
全球时讯:IDEA如何使用Maven不通过模板创建javaWeb项目
IDEA如何使用Maven不通过模板创建javaWeb项目1 创建项目进入IDEA,点击“项目”>“新建项目”,填写项...
来源: 观焦点:Module理解及使用
环球今日报丨【算法训练营day49】LeetCode121. 买卖股票的最佳时机 LeetCode122. 买卖股票的最佳时机II
全球时讯:IDEA如何使用Maven不通过模板创建javaWeb项目
【速看料】golang执行命令 && 实时获取输出结果
【速看料】[Qt开发/毕业设计/求职项目]局域网环境下远程文件发送部署系统-服务端、客户端双端的讲解
【环球快播报】公园飞无人机 被男子一板凳拍在地上:怕伤到孩子
环球新消息丨为1个亿目标 26岁“背景太假哥”拼了:每天冒严寒、酷暑直播
全球看点:智慧管理+贴心服务,这座网红公厕不“简单”
【快播报】[数据结构] 稀疏矩阵的转置与快速转置
天天微动态丨关于Linux升级内核时报错-grub2-editenv: error: environment block too small.
RTX 4070笔记本挤牙膏?只比RTX 3070快了11%
天天热资讯!史上第25个!浙江彩民69元中2.4亿元巨奖 网友调侃:又骗我买彩票
全球热讯:不能“回血”了!微软大作《红霞岛》实体版仅提供激活码
焦点报道:0X01 位运算笔记
P4171 满汉全席
0反式脂肪酸!旺旺邦德轻乳咖啡官方清仓:9瓶1盒仅19.9元
目标基辅号
环球观点:鹡鸰女神第2集-鹡鸰女神无修版
环球新动态:雷军宣布小米参加MWC 2023大会!铁大、铁蛋机器人海外亮相
【世界快播报】(数据库系统概论|王珊)第五章数据库完整性-第四、六、七节:约束命名子句、断言和触发器
上海一特斯拉再现失控事故:成道路护栏“终结者”
全球实时:插混和增程路线谁更好?院士欧阳明高给出答案
上海中环内圈发生单车事故 官方通报:车辆起火翻滚地面 驾驶员死亡
每日速讯:F - 树状数组 2【GDUT_22级寒假训练专题五】
全球新资讯:ChatGPT大火 马斯克批OpenAI违背初心:被微软控制 只顾赚钱
贵南高铁全线静态验收:时速350公里 南宁到贵阳时间缩短一半
速看:05-python运算符
【全球聚看点】字节二面:10Wqps超高流量系统,如何设计?
全球快看:动态规划解决最值、有多少方案之类问题
[奶奶看了都会]ChatGPT接入企业微信成为聊天机器人
世界观热点:蹲夜叉还有意外收获?变异蝴蝶直接就往脸上刷啊!
今日热讯:暴雪宣布《暗黑4》新雕像
43年的友情!马云低调现身墨尔本 与昔日好友相见
每日视点!男子将比亚迪海豚改装称房车:车内洗澡、看电影、吃火锅
全球热点!仿豆瓣发布-编辑框自适应高度,自动滚动定位到焦点输入
今日热门!(数据库系统概论|王珊)第五章数据库完整性-第一、二、三节:数据库三大完整性
精选!特斯拉前脸被完全撞烂 气囊没弹!车主:可以去维权吗?
当前聚焦:《地下城与勇士》大面积更改名称、美术素材 玩家喊话中消协:退钱
环球通讯!特斯拉创始人:自动驾驶是胡扯 汽车不应像iPhone
【天天新要闻】AMD、NV把显卡卖到万元 Intel成救星:下代能冲RTX 4080
手机预置软件影响用户体验 央媒揭秘幕后原因:厂商利益驱动
全球视点!苹果上新348元省电保护膜!网友:觉得贵的不是目标客户
读Java实战(第二版)笔记14_CompletableFuture及反应式编程背后的概念
如果我种一个橄榄核,它会长成一棵树吗?
天天即时:全球第10 三星Galaxy S23 Ultra相机DXO等分140:不敌小米11 Ultra
《塞尔达传说:王国之泪》日本最新海报曝光:腐朽大师剑现身
讯息:《生化危机4:重制版》硬件要求出炉:开光追 A卡很受伤
仰望银河背后 吉利是真着急了
散片就是这么来的?男子腰缠155片CPU入境被海关查获
【全球热闻】SpringBoot中统一API返回格式的两种方式
焦点消息!C#两个特殊的集合类StringCollection与StringDictionary
每日聚焦:03-数据类型
快播:期末复习——虚拟内存
速讯:04-数据类型转换
当前报道:安卓机皇!三星Galaxy S23 Ultra下周首销:价格对标iPhone 14 Pro Max
环球热讯:蜜雪冰城门店没关音响扰民一宿 客服:门店整改 向周围居民送冰淇淋致歉
RTX 40系移动平台性能测试出炉:RTX 4080与RTX 4090差距极小
世界新消息丨日本新生儿数量首次跌破80万 创有统计以来最低值:789万老人还在打零工
全球快播:iPhone 14最高降1600元 苹果经销商贴本卖机:谁还买安卓?
九型性格系统_0型血女生的性格
世界快资讯丨首届中国非遗保护年会开幕 四川非遗项目精彩亮相
简讯:超过年限要报废!老人用高压锅炖肉脸部被重伤
女子网购奶粉4个月吃剩半罐退货:被店家吐槽似乞丐
官方称《狂飙》拍摄地拍照收费算勒索: “刀哥”回应不是我 行为不可取
头条焦点:伸展树(Splay)详解
当前简讯:期末复习——内存管理
报道:django连接ubuntu22下的mysql8
打造自己的ChatGPT:逐字打印的流式处理
从矩阵的谱半径到神经网络梯度消失
当前速读:女子厨房接水时速热水龙头突然爆炸冒白烟:爆炸声堪比雷响
【天天时快讯】特斯拉Model 3追尾公交1死1伤 事故已影响销售:网友关心刹车问题
全球快资讯丨女子屋内湿度表1年数值不变 好奇拆下检查后无语:还以为是坏的
世界时讯:【JS】Pug调用自定义JS函数
头条:Java正则匹配域名白名单
曾经很火但消失了的APP!网友第一个想到的是”腾讯微博“
环球即时:女子入住网红酒店发现床垫有尿渍:满房一股味
防AI越界!微软将出手:把必应聊天回复限制在5条以内
天天热文:全球最高安全标准 我国自研华龙一号技术:太平岭核电预计2025年投产发电
天天热资讯!挑战全网最土的“公主下午茶” 让人看饿:网友感慨羞辱多少爱装腔作势人
【新要闻】组合数学_第1章_排列与组合
每日消息!称霸意甲的非洲新一代神锋,奥斯梅恩正在征服足坛
让NV对30系显卡降价不可能!厂商清仓RTX 3080:2年后价格重回首发价
全球观速讯丨《文明6》已玩腻 等了7年的《文明7》官宣:主管大换血
环球关注:tui.editor一款功能强大的markdown编辑器
热消息:关于python中将字典的所有key组成一个列表的方式
【环球报资讯】Cesium CallbackProperty(十五)
【世界独家】全天候显示能掉多少电?iOS 16.4告诉你
环球观速讯丨公司回应要求员工扫厕所:这是福利 每月有几十元奖励
焦点日报:冲击40亿有望!《流浪地球2》累计票房已超38亿
女子情人节翻垃圾桶捡到金链:最后被前主人要回 网友热议
全球速读:【算法训练营day48】LeetCode198. 打家劫舍 LeetCode213. 打家劫舍II LeetCode337. 打家劫舍III
GitHub 入门 与 2023年2月18日10:29:02
观天下!假的!马斯克否认修改算法推荐自己帐号 将追责说谎员工
环球微动态丨颠覆性创新 潍柴全球首发大功率SOFC燃料电池:研发花了20亿
环球新资讯:学习笔记——尚好房项目的数据库建表文件
VirtualBox 配置虚拟机 Host-only 和 Nat
世界百事通!win系统提示请插入多卷集的最后一张磁盘解决方法
第三章 计算机进行小数运算时出错的原因
全球聚焦:北江纺织:拟冲刺上交所IPO上市,预计募资4.22亿元,近年综合毛利率逐年下降
【环球速看料】五菱会玩!城市玩乐潮品SUV悦也“小书包”是块屏:可自定义内容