首页 > web前端 > js教程 > 正文

前端知识 JavaScript-modules模块的学习

php是最好的语言
发布: 2018-08-06 10:00:54
原创
2039人浏览过

modules,就是JS的模块,我的理解就是,当有大量同类型或者有关联的数据和函数,方法需要当作一个整体展示的时候,可以单独定义成一个module也就是模块。Module意义就使得代码模块化,使你的代码分成一个个逻辑上独立的子集,每个子集处理特定的功能,然后被单独调用。

modules,也就是模块,自动采用严格模式,不管有没有在模块头部加上“user strict”,agruments不会自动反映函数参数的变化,以及禁止this指向全局对象

modules有两个关键字,Imports和Exports

  • Imports:用于输入其他模块提供的功能

  • Exports:用于规定对外的接口

一个模块就是一个独立的文件,该文件内部所有的变量,外部无法获取,如果希望外部读取模块内部的某个变量,就必须使用export关键字输出变量,export,除了输出变量,还可以输出函数,class

立即学习Java免费学习笔记(深入)”;

let a='a';
let b='b';
let c='c';
export {a,b,c}
登录后复制

如果为输出的变量重新取一个名字,import命令要使用as关键字,将name改成a,例如:

import {name as a} from '.../xxx.js'
登录后复制

另外,import具有提升效果,不管在哪里引用,都会被提升到整个模块的顶部,首先执行

除了指定加载某个值,还可以将整体加载,即用星号(*)指定一个对象,所有输出值都加载在这个对象上。例如

import * as a from '.../xxx.js'
console.log(a.area(4));
console.log(a.cire(4));
登录后复制

export default,设置模块文件的默认输出,每个module只允许有一个默认输出,默认输出不需要知道模块的变量名,另外,export default不需要加大括号,因为,本质上,export default就是输出了一个叫做default的变量或者方法,然后系统允许你为它取任意名字

var name="李四";
export { name }
//import { name } from "/.a.js" 
可以写成:
var name="李四";
export default name
//import name from "/.a.js" 这里name不需要大括号
登录后复制
// modules.js
function add(x, y) {
  return x * y;
}
export {add as default};
// 等同于
// export default add;

// app.js
import { default as xxx } from 'modules';
// 等同于
// import xxx from 'modules';
登录后复制

如果加载多次,等同于合并之后加载,例如

import {b} from '.../xxx.js'
import {c} from '.../xxx.js'
//等同于
import {b,c} from '.../xxx.js'
登录后复制

浏览器加载 ES6 模块,也使用<script>标签,但是要加入type="module"属性。</script>

<script type="module">
</script>
登录后复制

浏览器对于带有type="module"的<script>,都是异步加载,不会造成堵塞浏览器,即等到整个页面渲染完,再执行模块脚本,等同于打开了<script>标签的defer属性。</script>

模块之中,顶层的this关键字返回undefined,而不是指向window。也就是说,在模块顶层使用this关键字,是无意义的,同时利用顶层的this等于undefined这个语法点,可以侦测当前代码是否在 ES6 模块之中。。

相关文章:

学习web前端常用知识点的详细介绍

JavaScript 入门基础知识 想学习js的朋友可以参考下

以上就是前端知识 JavaScript-modules模块的学习的详细内容,更多请关注php中文网其它相关文章!

java速学教程(入门到精通)
java速学教程(入门到精通)

java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

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