引子:

2020.2.24.最近刚写完一个vue项目。项目用到ES6的模块化

想到之前写node项目用到过commonjs模块化

就想着把所有用到过的模块化技术 总结学习一下

在看阮一峰老师的 es6入门那本书中讲到的module语法

想着webstorm实现一下  ,验证书里写的一些特性

问题

写了两个文件

//module.js文件

let myName="laowang";
let myAge=90;
let myfn=function(){
return "我是"+myName+"!今年"+myAge+"岁了"
}
export {
myName,
myAge,
myfn
} //main.js文件
import {myfn,myAge,myName} from './module'
console.log(myfn());//我是laowang!今年90岁了
console.log(myAge);//
console.log(myName);//laowang

然后 run main.js  发现语法错误

思路:vue中es6模块化用的好好的,语法哪里用错了,看了文档也没错,就去b站搜模块化,然后看视频发现自己script 没有表明type

解决方案一

包裹在script标签中  type='moudle'  //因为用了模块化语法,要声明

报错:GET http://localhost:63342/commomjs/module net::ERR_ABORTED 404 (Not Found)

解决方案二

在方案一报错的基础上

找不到那么就是我引入的地址不对

//错误
import {myfn,myAge,myName} from './module' //正确
import {myfn,myAge,myName} from './module.js'

成果

对es6模块化一系列的测试后

1.export命令规定的是对外的接口,必须与模块内部的变量建立一一对应关系。

// 写法一
export var m = 1; //变量 export function f() {}; //函数 // 写法二
var m = 1;
export {m}; function f() {}
export {f}; // 写法三
var n = 1;
export {n as m};

2.另外,export语句输出的接口,与其对应的值是动态绑定关系,即通过该接口,可以取到模块内部实时的值。

3.export命令可以出现在模块的任何位置,只要处于模块顶层就可以

4.import命令输入的变量都是只读的,因为它的本质是输入接口。也就是说,不允许在加载模块的脚本里面,改写接口。

5由于import是静态执行,所以不能使用表达式和变量,这些只有在运行时才能得到结果的语法结构

6.import语句会执行所加载的模块

ES6模块化深入 debug的更多相关文章

  1. ES6模块化

    关于ES6模块化 历史上,JavaScript 一直没有模块(module)体系,无法将一个大程序拆分成互相依赖的小文件,再用简单的方法拼装起来.其他语言都有这项功能,比如 Ruby 的require ...

  2. ES6模块化与常用功能

    目前开发环境已经普及使用,如vue,react等,但浏览器环境却支持不好,所以需要开发环境编译,下面介绍下开发环境的使用和常用语法: 一,ES6模块化 1,模块化的基本语法 ES6 的模块自动采用严格 ...

  3. CommonJS、AMD、CMD和ES6模块化区别

    本文参考自:https://www.cnblogs.com/chenguangliang/p/5856701.html 1.CommonJS NodeJS是CommonJS规范的实现,webpack ...

  4. javascript ES6模块化

    一.将模块导出去 /* *将模块导出去 *a.js文件 */ const a=12; export default a; /* *将模块导出去 *b.js文件 */ const a=5; export ...

  5. ES6 模块化与 CommonJS 模块化

    ES6 模块化 import命令用于输入其他模块提供的功能;export命令用于规定模块的对外接口. export 可以有多个,export default 仅有一个 a.js 模块a文件 导出多个方 ...

  6. ES6 模块化(Module)export和import详解 export default

    ES6 模块化(Module)export和import详解 - CSDN博客 https://blog.csdn.net/pcaxb/article/details/53670097 微信小程序笔记 ...

  7. ES6模块化使用遇到的问题

    前言 最近在学习ES6模块化时,遇到了一些问题,通过查询相关资料得以解决,本篇随笔详细记录了解决方法. 具体内容 以下定义一个模块common.js 在test.html中引入上述定义的模块 运行上述 ...

  8. 07 . 前端工程化(ES6模块化和webpack打包)

    模块化规范 传统开发模式主要问题 /* 1. 命名冲突 2. 文件依赖 */ 通过模块化解决上述问题 /* 模块化就是把单独的一个功能封装在一个模块(文件)中,模块之间相互隔离, 但是可以通过特定的接 ...

  9. js 模块化的一些理解和es6模块化学习

    模块化 1 IIFE 2 commonjs 3 浏览器中js的模块化 4 简单理解模块加载器的原理  5 es6 之前在参加百度前端技术学院做的小题目的时候,自己写模块的时候 都是写成立即调用表达式( ...

随机推荐

  1. HashMap1.8之节点删除分析

    HashMap之节点删除 大家一直关注的都是HashMap如何添加节点,当节点数量大于8的时候转化为红黑树,否则使用链表等等,但大家是否有看过删除节点的处理逻辑呢? 今天来看看HashMap删除节点的 ...

  2. android图片保存到SQLlite如何实现?

    //写入数据库               ImageView pic = (ImageView) findViewById(R.id.picture);                        ...

  3. 浏览器之本地缓存存储 localStorage 和 sessionStorage的区别以及用法

    区别: localStorage永久保存在浏览器  :sessionStorage在浏览器关闭之后存储的数据就会销毁 用法:两者用法差不多,但是取值有所不同 编辑页面逻辑代码为: 这是给 id=btn ...

  4. 《算法技术手册》George T. Heineman(作者)epub+mobi+azw3

    内容简介 开发健壮的软件需要高效的算法,然后程序员们往往直至问题发生之时,才会去求助于算法.<算法技术手册>讲解了许多现有的算法,可用于解决各种问题.通过阅读它,可以使您学会如何选择和实现 ...

  5. 报错信息 Context []startup failed due to previous errors

    文章转自:http://blog.sina.com.cn/s/blog_49b4a1f10100q93e.html 框架搭建好后,启动服务器出现如下的信息: log4j:WARN No appende ...

  6. iOS Burp suite CA证书 HTTPS

    设置好burp suite代理后,在浏览器地址输入http://burp/,下载CA证书: 在iOS上下载CA证书,可通过邮件或百度云等一切iOS可以访问证书文件的方法: 点击证书文件iOS提示安装, ...

  7. Redis之datatype概述

    Redis支持的数据类型     String     List    Set    Sorted Set    Hashes    Bit array    HyperLogLog     Bina ...

  8. linux安装软件的几种方法----linux下编译安装软件的一般步骤

    linux安装软件的几种方法: 一.rpm包安装方式步骤: 1.找到相应的软件包,比如soft.version.rpm,下载到本机某个目录: 2.打开一个终端,su -成root用户: 3.cd so ...

  9. 虚拟机安装安全狗apache服务的一些问题解决方式(11.5)

    首先本文鸣谢bonga的解答大部分问题=.= 由于本人比较懒所以还是喜欢问,不喜欢查啦 1.windows网站安全狗分为:IIS  和  APACHE  版本    我下载的是APACHE版本 (因为 ...

  10. 5G/NR 帧结构

    原文链接:http://www.sharetechnote.com/html/5G/5G_FrameStructure.html 在学术界和3GPP中对帧结构进行了长时间的讨论,现在我们就NR(5G) ...