资讯专栏INFORMATION COLUMN

你可以说出export export default || model.exports exp

Anchorer / 3160人阅读

摘要:一前言用模块写代码,为什么要用模块来写代码之前,在中定义的一切,都是共享一个全局作用域的,随着应用变得复杂,这样做会引起如命名冲突和安全问题于是引入了模块。

一.前言:

用模块写代码,为什么要用模块来写代码:ES6之前,在js中定义的一切,都是共享一个全局作用域的,随着web应用变得复杂,这样做会引起如:命名冲突和安全问题、于是引入了模块。

二.清楚一个概念:

export 和 export default 是ES6 里面的API(本文只介绍ES6的)

exports 和 model..exports 是node.js里面的API,更切确的说是Common.js里的(就和require 和 import 相似)

三.export
// a.js
export let a = 1          //输出变量
export fn(){...}          //输出函数
export class Class{
  constructor(a,b){
    this.a = a;
    this.b = b;
  }
}                         //输出类

fn2(){...}                //定义一个函数
export fn2;               //建议以这种在末尾统一输出的方式export
export {fn2 ,fn};         //导出多个变量,要有{}
export {fn2 as asFn2};    //导出时重命名,要有{}


// b.js
import {fn2} from "a.js";  //export 的引入要加{},单个也要加;
import {fn2 , a , Class as Class1}  from "a.js"   //引入多个要用 ‘,’隔开;
import * as example from "a.js";                  //引入整个模块
example.a = 1;                                    //使用模块,在有很多需要引入时,建议这种方法;
四.export defalut(模块的默认值)
  // a.js
  export default function(num1,num2){...}   //导出默认值,只能导出一个
  export let a = 1;                         //导出变量a
  
  // b.js
  
  import any from "a.js";                   //引入默认值,any 可以是任意的名字,不用{}
  import {a} from "a.js";                   //引入a ;
  import any,{a} from "a.js"                //默认值必须放在非默认值前面
  import {default as any , a} from "a.js"   //有重命名就要大括号包起来
总结:

export :

单个不用括号,多个要用{},as也要用{}; (因为export default 只能export 一个);

import

除了* as ,别的重命名都要用{}

export 要用{}

既有export 和 export default时:import any,{a} from "a.js’ 默认写前面

by:Beast 原创:转载请声明

觉得对你有用,请点赞!欢迎探讨指点!

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/57493.html

相关文章

  • 可以说出export export default || model.exports exp

    摘要:一前言用模块写代码,为什么要用模块来写代码之前,在中定义的一切,都是共享一个全局作用域的,随着应用变得复杂,这样做会引起如命名冲突和安全问题于是引入了模块。 一.前言: 用模块写代码,为什么要用模块来写代码:ES6之前,在js中定义的一切,都是共享一个全局作用域的,随着web应用变得复杂,这样做会引起如:命名冲突和安全问题、于是引入了模块。 二.清楚一个概念: export 和 ex...

    array_huang 评论0 收藏0
  • 可以说出export export default || model.exports exp

    摘要:一前言用模块写代码,为什么要用模块来写代码之前,在中定义的一切,都是共享一个全局作用域的,随着应用变得复杂,这样做会引起如命名冲突和安全问题于是引入了模块。 一.前言: 用模块写代码,为什么要用模块来写代码:ES6之前,在js中定义的一切,都是共享一个全局作用域的,随着web应用变得复杂,这样做会引起如:命名冲突和安全问题、于是引入了模块。 二.清楚一个概念: export 和 ex...

    junfeng777 评论0 收藏0
  • js导入导出总结与实践

    摘要:在上一篇文章中中和模块的导入导出对比,偏向于理论层面,还有一些同学在微信群里或是私下里针对一些问题进行了沟通,所以有了这一篇文章,对的导入导出进行总结和实践当直接给时,会失效这个问题其实已经和导入导出没什么关系了,我们看一个知乎上的问题详细 在上一篇文章中JavaScript中AMD和ES6模块的导入导出对比,偏向于理论层面,还有一些同学在微信群里或是私下里针对一些问题进行了沟通,所以...

    yanwei 评论0 收藏0
  • nodejs实现restful API

    更新:最新的源码和使用说明放到了github上 点击跳转本文的重点在于restful接口的设计与实现,使用到了express和monogoose.点击查看express教程点击查看monogoose教程ES6入门教程----阮一峰的博客 node4.x对ES6的支持并不完善,建议使用更高版本的node在实际开发中请在文件头部添加use strict来声明使用严格模式为了有助于更好的理解后期的代码,...

    harriszh 评论0 收藏0
  • es6学习笔记-module_v1.0_byKL

    摘要:学习模块不是对象,而是通过命令显式指定输出的代码,输入时也采用静态命令的形式。的模块自动采用严格模式命令用于规定模块的对外接口,命令用于输入其他模块提供的功能。该文件内部的所有变量,外部无法获取。 es6 学习-module_v1.0 ES6模块不是对象,而是通过export命令显式指定输出的代码,输入时也采用静态命令的形式。 ES6的模块自动采用严格模式 export命令用于规定模...

    VishKozus 评论0 收藏0

发表评论

0条评论

Anchorer

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<