2.1JavaScript语言的ES6 Module

每个文件本身都是模块,在文件中定义的类、变量、常量和函数对这个文件而言都是私有(private)的,除非它们被显式导出。另外,一个模块导出的值只有在显式导入它们的模块中才可以使用。

虽然模块中可同时存在命名导出和默认导出,但作为最佳实践只使用命名导出和默认导出中的一种。

当使用场景为需要导出多个值的时候,只使用命名导出。

当使用场景为只导出一个值(通常是一个类或函数)的时候,只使用默认导出。

1.命名导出(named export)

要从 ES6 模块中导出类、变量、常量或函数,只需要在声明前添加 export 关键字即可。

//多个export方式(命名导出)

export class Circle {
  constructor(r) { this.r = r; }
  area() { return PI * this.r * this.r; }
}

export const PI = Math.PI;

export function degreesToRadlans(d) { return d * PI / 180; }
//一个export方式(命名导出)

class Circle {
  constructor(r) { this.r = r; }
  area() { return PI * this.r * this.r; }
}

const PI = Math.PI;

function degreesToRadlans(d) { return d * PI / 180; }

//不带别名
export { Circle, degreesToRadians, PI };
//带别名
export { Circle as 类别名, degreesToRadians as 函数别名, PI as 常量别名 };

2.默认导出(default export)

使用命名导出,只对有名称的声明有效,而使用默认导出,则可以导出任意表达式,包括匿名类表达式、匿名函数表达式、对象字面量。

export default class [BitSet] {

//同等命名导出的语法

class BitSet {
  //类体
}

export { Bitset as default };
export default function [函数名](参数){
  //函数体
}

//同等命名导出的形式

function 函数名(参数){
  //函数体
}

export { 函数名 as default };

3.导入模块

模块外围的引号支持单引号('模块')或双引号("模块")。

模块必须是一个以“/”开头的绝对路径,或者是一个以“./”或“../”开头的相对路径,又或者是一个带
有协议及主机名的完整URL。ES6模块规范不支持类似“util.js”的非限定模块标识符字符串。

//不带别名
import { 类名, 函数名, 常量名 } from '模块';
//带别名
import { 类名 as 类别名, 函数名 as 函数别名, 常量名 as 常量别名 } from '模块';
//命名导出
//导入全部
import * as stats from "./stats.js";
//导入多个
import { mean, stddev } from "./stats.js";
//只导入一个
import { mean } from "./stats.js";

//默认导出时有名称
import BitSet from './bitset.js';
//默认导出时无名称
import { default as 别名 } from './fooModule.js';

原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/javascript/javascriptlang/3556.html

(0)
上一篇 2020年8月30日 18:20
下一篇 2020年9月2日 20:15

相关推荐

  • 1.7JavaScript语言的函数(Function)

    1.函数声明 每次调用函数都会返回 Function 类型的实例。 2.函数分类 2.1全局函数 名称 修饰符 全局函数 —————— 2.2成员方法 名称 修饰符 静态方法 用 static 修饰 实例方法 无 static 修饰 2.2局部函数 名称 修饰符 嵌套函数 —————— 3.参数分类 名称 修饰符 值参…

  • 1.1JavaScript语言的注释(Comment)

    1.单行注释 2.多行注释 3.Hashbang注释 Hashbang注释用于当脚本直接在 shell 中运行时以指定 JavaScript 解释器的路径,但如果直接在 JavaScript 解释器中运行时,它会被视为普通注释。 Hashbang注释只能单行且一个文件只能有一个Hashbang注释。

  • 2.5JavaScript引用类型之数组(Array)

    数组是一种数据结构。 1.数组声明 2.稀疏(Sparse)数组 如果逗号之间形成了间隙(hole),我们可以将带有间隙的数组叫做稀疏(Sparse)数组,反之,不带间隙的数组叫做紧凑(Dense)数组。 3.多维数组 数组是可以嵌套的, 这就意味着一个数组可以作为一个元素被包含在另外一个数组里面。利用JavaScri…

发表回复

登录后才能评论