import导入模块,import的语法跟require不同,而且import必须放在文件的最开始,且前面不允许有其他的逻辑代码;
写个简单js文件,假设名字为lib.js.假设内容如下:
export const sqrt=Math.sqrt; export function square (x){ return x*x }; export function diag (x,y){ return sqrt( square(x) + square (y) ); }
在其他地方对lib中定义的属性和方法进行引用,引用方法有两种,import和require;
方法一:import { square ,diag} from 'lib';
方法二:import * as lib from 'lib';
设置默认的导出信息,需要lib.js中定义export default{},default后面可以接一个参数,也可以接一个数组;
//module1.js export default 123; //module2.js const D=123; export {D as default}; node的module遵循Common.js规范,require.js遵循AMD,seaJS遵循CMD; as关键字(主要可以解决重名问题) as简单的说就是取一个别名,export中可以用,import中其实也可以用; //a.js var a=function(){},export { a as fun}; //b.js import { fun as a} from './a';a()
default关键字
在export的时候,可能会用到default,说白了,其实是别名的语法糖;
例如:export default function(){};
//等效于:function a(){};export {a as default}; 在import的时候,可以这样用; import a from './d'; //等效于,下面简写 import {default as a} from './d'
总结:这种语法糖的好处就是import的时候,可以省去花括号{},简单的说,如果import的时候,你发现某个变量没有花括号括起来(没有*号),就是as语法的简写;