require和import的区别
程序员文章站
2022-06-04 16:48:30
...
由于最近刚离职没有工作,就在家看代码刚好看到require,所以就写篇文章给自己加深点印象(顺便复习一下,手动滑稽一下。)
回归到整体(两者的区别)
- require是CommonJs的语法(引入的是AMD的规范) CommonJs模块是对象
import是ES6的语法 es6模块不是对象 - requrie是运行时加载 (生成一个对象,再从对象上取值)
import是编译时加载(确认引用关系后在输出,import变量会提升:列1) - 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)
上一篇: html的常用标签汇总
下一篇: 服务型机器人能走进千万家庭吗?