es6(六):module模块(export,import)
<script type="module" src="es7-1.js" ></script>
<script type="module" src="es7-2.js" ></script>
<!-- 页面渲染完成再去加载,相当于设置了defer,不会造成浏览器阻塞 -->
用script引入模块文件时,需要加上type="module"
这里补充一下defer和async属性:
<script src="a.js" async></script>
设置了async属性后,浏览器加载页面的过程是:渲染引擎开始渲染,发现设置async属性的脚本,继续渲染,同时下载脚本,当脚本下载完成,渲染引擎将浏览器控制权脚本JS引擎,执行脚本。因为可能会遇见多个脚本,同时脚本的下载时间有长有短,所以脚本执行顺序可能不是脚本书写的顺序!
设置defer属性,浏览器的工作情况:前面与上面类似,不过当发现脚本,渲染引擎会继续渲染页面,直到页面渲染完成,再将浏览器控制权交给JS引擎,执行脚本;所以脚本执行顺序与脚本书写的顺序一致。这种与在页面底部引入的脚本文件作用类似!
如果均未设置以上属性,浏览器工作情况:渲染引擎开始渲染,发现脚本,将浏览器控制权脚本js引擎,下载脚本,执行脚本,结束后JS引擎再将浏览器控制权交给渲染引擎,渲染引擎继续渲染。。。
export:导出变量,函数,类等
第一种写法:
export let name='apple'
export let age=100
export let year=2017
第二种写法:更推荐(在最下面使用export导出,能看出究竟哪些变量或其他类型被导出,更直观)
let name1='apple'
let age1=100
let year1=2017
export {name1,age1,year1}
export {name1 as a,age1 as b}
let a1=function (){}
// export a1//错误的写法
export {a1}
export function f(){}//正确写法
function f1(){}
// export f1//错误写法
export default function(){}
// 而导入时,可以import abc from './es7-2' 注意此时的abc没有用大括号括起来,abc可以为任意有效变量名
// 总体来说export default后, import后面可以加上任意变量名,比较方便
import:当export导出了模块的对外接口,此时就可以用import导入接口(加载导出的模块)
import {name1,age1,year1} from './es7-1.js'
console.log(name1,age1,year1)//apple 100 2017
// form后面路径可以是相对路径也可以是绝对路径,.js后缀可以省略
// 但是我开apache时,省略js报错了,同时如果script是行内引用的话,必须加.js后缀,所以建议任何时候都加上后缀
import {name1 as a1}
es6(六):module模块(export,import)的更多相关文章
- (转)关于ES6的 模块功能 Module 中export import的用法和注意之处
关于ES6的 模块功能 Module 中export import的用法和注意之处 export default 的用法 export default命令用于指定模块的默认输出.显然,一个模块只能有一 ...
- 关于ES6的 模块功能 Module 中export import的用法和注意之处
export default 的用法 export default命令用于指定模块的默认输出.显然,一个模块只能有一个默认输出,因此export deault命令只能使用一次.所以,import命令后 ...
- ES6 模块export import
在 ES6 前, 实现模块化使用的是 RequireJS 或者 seaJS(分别是基于 AMD 规范的模块化库, 和基于 CMD 规范的模块化库).ES6 引入了模块化,其设计思想是在编译时就能确定模 ...
- ES6学习笔记八(module模块export)
1.导出export,导入import组合 知识点1:导出export lesson2.js export let A=; export function test(){ console.log('t ...
- ES6中的模块
前面的话 JS用"共享一切"的方法加载代码,这是该语言中最容出错且容易令人感到困惑的地方.其他语言使用诸如包这样的概念来定义代码作用域,但在ES6以前,在应用程序的每一个JS中定义 ...
- ES6 模块化(Module)export和import详解 export default
ES6 模块化(Module)export和import详解 - CSDN博客 https://blog.csdn.net/pcaxb/article/details/53670097 微信小程序笔记 ...
- ES6学习笔记<五> Module的操作——import、export、as
import export 这两个家伙对应的就是es6自己的 module功能. 我们之前写的Javascript一直都没有模块化的体系,无法将一个庞大的js工程拆分成一个个功能相对独立但相互依赖的小 ...
- 在浏览器中使用ES6的模块功能 import 及 export
感谢英文原作者 Jake Archibald 的技术分享 各个浏览器对于ES6模块 import . export的支持情况 Safari 10.1. Chrome 61. Firefox 54 – ...
- JavaScript ES6 module 模块
在使用JavaScript开发大型项目时,模块开发概念是一个必须考虑的问题.其目的就是通过命名空间对各类业务对象进行一定的封装,防止命名冲突. 本篇着重介绍ES6 module中的export和imp ...
随机推荐
- Ubuntu文件中文乱码
如图,该文件在gedit打开中文显示正常 在命令行中用vim打开,显示内容如下: 使用命令进行编码转换 iconv -f gbk -t utf8 ./SogouQ.mini > ./sougou ...
- CUDA学习,环境配置和简单例子
根据摩尔定律,每18个月,硬件的速度翻一番.纵使CPU的主频会越来越高,但是其核数受到了极大的限制,目前来说,最多只有8个或者9个核.相比之下,GPU具有很大的优势,他有成千上万个核,能完成大规模的并 ...
- Leetcode_58_Length of Last Word
Given a string s consists of upper/lower-case alphabets and empty space characters ' ', return the l ...
- Java由先序序列和中序序列还原二叉树
还原本来的二叉树并不是一个非常简单的事,虽然思想比较简单,但过程却是比较繁琐.下面我拿先序序列和中序序列来讲一下原理吧. 从先序序列中我们一下子就可以得到二叉树的根节点是第一个元素,然后再中序序列中我 ...
- STL:map/multimap用法详解
map/multimap 使用map/multimap之前要加入头文件#include<map>,map和multimap将key/value当作元素,进行管理.它们可根据key的排序准则 ...
- 敏捷测试(6)--基于story的敏捷基础知识
基于story的敏捷基础知识----需求管理(三) (3)每日站会 站会的目的有三个: (1)周知进度 仅从用户故事和任务的层面周知进度,任务进度只有两种状态:完成或未完成(完成百分比). (2)周知 ...
- Css技术入门笔记02
第一篇见Css入门笔记01http://blog.csdn.net/qq_32059827/article/details/51406674 4.其他选择器 4.1.关联选择器 有时在页面上会出现我们 ...
- Credit Summaries & Importing External Credit Exposure
In this Document Goal Solution APPLIES TO: Oracle Order Management - Version 11.5.10.2 to 12.1.3 ...
- (NO.00001)iOS游戏SpeedBoy Lite成形记(十二)
如果选手能在加速的时候屁股产生推进器效果就跟好了,仿佛选手腾云驾雾的感觉.我们可以用Cocos2D中的CCMotionStreak类来轻松实现.下面在Player.h接口文件添加以下代码: @prop ...
- jquery跳出当前的each循环的方式
jquery跳出当前的each循环,使用如下方式: return false;--跳出所有循环:相当于 javascript 中的 break 效果. return true;--跳出当前循环,进入下 ...