当前位置:网站首页>【实践出真理】import和require的引入方式真的和网上说的一样吗
【实践出真理】import和require的引入方式真的和网上说的一样吗
2022-07-06 21:51:00 【Concise200】
import和require
今天做笔试题的时候做到了一道题,如图所示
正确答案如下:
按网上的说法是正确的,因为require导入的就是类似于浅拷贝的操作(如果有北鼻不了解浅拷贝,可以查看一文教你区分赋值、浅拷贝和深拷贝)
但是网上也说
require通过module.exports导出的值就不能再变化,import通过export导出的值可以改变;
真的是这样的吗???
浅浅实践一波
// a.js
let a = 1
let b = {
}
setTimeout(() => {
a = 2
b.b = 2
}, 100)
export default{
a,
b
}
import a from './a.js'
console.log(a.a)
console.log(a.b)
setTimeout(() => {
console.log(a.a)
console.log(a.b)
}, 500)
按网上的结果,得到的答案应该是
1
{}
2
{ b: 2 }
可是实际上却是
在上面的表现中,二者都类似 浅拷贝 的操作,并不和网上说的一样a会变成2。
可是如果采用按需导入,那基本数据类型和引用数据类型都是一起变化的
let a = 1
let b = {
}
setTimeout(() => {
a = 2
b.b = 2
}, 100)
export{
a,
b
}
// 或者这么写
/*export let a = 1 export let b = {} setTimeout(() => { a = 2 b.b = 2 }, 100)*/
import {
a,b} from './a.js'
console.log(a)
console.log(b)
setTimeout(() => {
console.log(a)
console.log(b)
}, 500)
结果如图所示
总结:
- 默认导出 和 require都是浅拷贝
- 按需导出才是引用,不管是基本数据类型还是引用类型,只要
导出方
发生改变,导入方
就会改变。
边栏推荐
- [coded font series] opendyslexic font
- EasyUI export excel cannot download the method that the box pops up
- C # use Siemens S7 protocol to read and write PLC DB block
- Pyqt5 out of focus monitoring no operation timer
- 这项15年前的「超前」技术设计,让CPU在AI推理中大放光彩
- [ArcGIS tutorial] thematic map production - population density distribution map - population density analysis
- True Global Ventures新成立的1.46亿美元后续基金关账,其中普通合伙人认缴6,200万美元以对后期阶段的Web3赢家进行投资
- Surpassing postman, the new generation of domestic debugging tool apifox is elegant enough to use
- 機器人(自動化)課程的持續學習-2022-
- Nanopineo use development process record
猜你喜欢
Imitate Tengu eating the moon with Avatar
Break the memory wall with CPU scheme? Learn from PayPal to expand the capacity of aoteng, and the volume of missed fraud transactions can be reduced to 1/30
Deeply cultivate the developer ecosystem, accelerate the innovation and development of AI industry, and Intel brings many partners together
[on automation experience] the growth path of automated testing
这项15年前的「超前」技术设计,让CPU在AI推理中大放光彩
C # use Siemens S7 protocol to read and write PLC DB block
用CPU方案打破内存墙?学PayPal堆傲腾扩容量,漏查欺诈交易量可降至1/30
The root file system of buildreoot prompts "depmod:applt not found"
视频融合云平台EasyCVR视频广场左侧栏列表样式优化
Antd comment recursive loop comment
随机推荐
Nanopineo use development process record
[team learning] [34 issues] scratch (Level 2)
[knife-4j quickly build swagger]
未婚夫捐5亿美元给女PI,让她不用申请项目,招150位科学家,安心做科研!
2022中青杯数学建模B题开放三孩背景下的生育政策研究思路
英特尔David Tuhy:英特尔傲腾技术成功的原因
Golang compresses and decompresses zip files
Restore backup data on GCS with br
True global ventures' newly established $146million follow-up fund was closed, of which the general partner subscribed $62million to invest in Web3 winners in the later stage
接口自动化测试实践指导(中):接口测试场景有哪些
Unity3d can change colors and display samples in a building GL material
Use br to back up tidb cluster to GCS
深耕开发者生态,加速AI产业创新发展 英特尔携众多合作伙伴共聚
VIM - own active button indent this command "suggestions collection"
EasyCVR视频广场点击播放时,主菜单高亮效果消失问题的修复
The first introduction of the most complete mongodb in history
《原动力 x 云原生正发声 降本增效大讲堂》第三讲——Kubernetes 集群利用率提升实践
浙江大学周亚金:“又破又立”的顶尖安全学者,好奇心驱动的行动派
Ssm+jsp realizes the warehouse management system, and the interface is called an elegant interface
过气光刻机也不能卖给中国!美国无理施压荷兰ASML,国产芯片再遭打压