require和import的区别归纳

由于最近刚离职没有工作,就在家看代码刚好看到require,所以就写篇文章给自己加深点印象(顺便复习一下,手动滑稽一下。)

回归到整体(两者的区别)

  1. require是CommonJs的语法(引入的是AMD的规范) CommonJs模块是对象
    import是ES6的语法 es6模块不是对象
  2. requrie是运行时加载 (生成一个对象,再从对象上取值)
    import是编译时加载(确认引用关系后在输出,import变量会提升:列1)
  3. require赋值或者浅拷贝(基本类型是复制,对象类型是浅拷贝)
    import类似于解构赋值 (当我需要谁的时候就调用谁)

列:1 (import变量提升)

// a.js
let name = 'will
let setName = () => {
	name = 'new will'
	console.log('set')
}
export {set}

// index.js
set() // set方法不会报错(‘set’)
impotrt {set} from 'a.js'

列2(requrie复制或前拷贝,import解构)

(require)
// a.js
let a = 0
let count = () => {
	a += 2
	console.log('conut', a)
}
module.export = { //对象类型是浅拷贝,基本类型是复制
	a,
	count
}


// index 
let obj = require('a.js')
console.log(obj) // {a: 0, count:f} 
obj.set() // 'count', 2
setTimeout(() => {
	console.log(obj.a) // 0
}, 1000)




(import)
// a.js 
let a = 0
let count = () => {
	a += 2
	console.log('conut', a)
}
export {
	a,
	count
}

// index.js
import {a, count} from 'a.js'
console.log(a)// 0
set()
setTimeout(() => {
	console.log(a) // 2 //模块内部的更改模块外面的也会跟着改变
}, 1000)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值