es6语法中 import js文件的几种区别

常见的有3种形式

import … from “…”

// A.js
export default 20
// B.js
import A from './A'
上面的代码生效的前提是,只有在A.js中有默认导出的export default语法时才会生效。
这种不使用{}来引用模块的情况下,import模块的命名是随意的,即如下三种引用命名都是正确的:
//B.js
import A from './A'
import B from './A'
import Something from './A'
因为它总是会解析到A.js中默认的export default

import {…} from “…”

//A.js
export const A = 21
//B.js
import { A } from './A'

代码生效的前提是,只有在模块A.js中有如下命名导出为A的export name的代码,
而且,在明确声明了命名导出后,那么在另一个js中使用{}引用模块时,import时的模块命名是有意义的,如下:
// B.js
import { A } from './A' // 正确,因为A.js中有命名为A的export
import { B } from './A' // 错误!因为A.js中没有命名为myA的export

import * as from “…” 取一个别名

export const sqrt1 = Math.sqrt;
export const sqrt2= Math.sqrt;
import * as sqrtobj from "....."
sqrtobj.sqrt1
sqrtobj.sqrt2

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ES6实现了模块功能export和import 在ES6出现之前,已经出现了解决js模块加载的方案,最主要的是Co...
    古德毛宁_39de阅读 4,261评论 0 4
  • 介绍 在ES6之前社区定制了一些模块加载方案,主要有CommonJS和AMD两个,CommonJS用于服务器,而A...
    jingqian_xi阅读 233评论 0 0
  • 首先JavaScript是没有对模块的内置支持的。但是社区还是开发了两个非常重要的方案Common.js和AMD(...
    肖雨San阅读 668评论 0 0
  • 你可能已经听说过ECMAScript 6(简称 ES6)了。ES6 是 Javascript 的下一个版本,它有很...
    奋斗的小废鱼阅读 772评论 0 16
  • 你可能已经听说过ECMAScript 6(简称 ES6)了。ES6 是 Javascript 的下一个版本,它有很...
    米塔塔阅读 964评论 0 10