摘要:import和require导入的区别

总的区别

requireimport
动态评估静态评估
再运行时报错再解析时报错
不是关键词是关键词
commonJSES6
代码中任何位置必须代码文件的头部
值传递引用传递

requir和import的用法

require的用法

(1)

//a.js
module.exports = {
  a : function() {},
  b : 'xxx'
};
//b.js
var m = require('./a');
m.a();

(2)

//hello.js
exports.world = function() {
  console.log('Hello World');                
}
//main.js
var hello = require('./hello');
hello.world();

(3)

//hello.js 
function Hello() { 
    var name; 
    this.setName = function(thyName) { 
        name = thyName; 
    }; 
    this.sayHello = function() { 
        console.log('Hello ' + name); 
    }; 
}; 
module.exports = Hello;
//main.js 
var Hello = require('./hello'); 
hello = new Hello();

hello.setName('BYVoid'); 
hello.sayHello(); 

import的用法

(1)

//a.js
var a = function() {};
export {a};
或者
export var a = function() {};
import {a} from './a';
a();

(2)

//model.js
let e1='export 1';
let e2='export 2';
export {e2};
export default e1;
//main.js
import e1, {e2}from "./model";
console.log(e1);
console.log(e2);

requir和import的区别

require是值传递,import相当于引用传递。

require例子

//model.js
let e2='export 2';
export.e2=e2;
e2='export 2 modified';
//index.js
daochu = requirment("./model");
console.log(daochu.e2);
#index.js执行结果  
export 2

import例子

//model.js
let e2='export 2';
export {e2};
e2='export 2 modified';
//index.js
import {e2} from "./model";
console.log(e2);
#index.js执行结果  
export 2 modified
文章目录