最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

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

来源:懂视网 责编:小采 时间:2020-11-27 19:32:45
文档

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

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

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

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

modules有两个关键字,Imports和Exports

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

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

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

    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 type="module">
    </script>

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

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

    相关文章:

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

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

    声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文档

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

    前端知识JavaScript-modules模块的学习:modules,就是JS的模块,我的理解就是,当有大量同类型或者有关联的数据和函数,方法需要当作一个整体展示的时候,可以单独定义成一个module也就是模块。Module意义就使得代码模块化,使你的代码分成一个个逻辑上独立的子集,每个子集处理特定的功能,然后被
    推荐度:
    标签: 学习 知识 js
    • 热门焦点

    最新推荐

    猜你喜欢

    热门推荐

    专题
    Top