JS 符号绑定。常量可以被修改?!
案例
在一个js模块a中export了一个bool型变量x,在另一个模块b中import它(单项引入的)。
如果后面通过调用a的某个方法修改了x的值,结果b中引入的这个变量的值也跟着变了,这是什么原理?
按理说js的变量是引用型的,b中引入的x应该就只是新定义了一个变量来取得x当时的值而已,后面a中的x值变了,不应该能自动更新b中引入的值啊!
难道说有什么特殊机制?
解答
// 1.js import { count, increase } from './2.js'; console.log(count);// 1 count = 2;// 从模块导入的值都是常量,所以它不允许被重新赋值
// 2.js export let count = 1; export function increase() { count++; }
未能赋值是正常逻辑。
但是我们使用 increase()
方法后程序便会产生意料之外的结果
// 1.js import { count, increase } from './2.js'; console.log(count);// 1 increase(); console.log(count);// 2
这就是 ESM 专有的情况,符号绑定。
视频资源
阿里云盘源:
https://www.alipan.com/s/62H4fSwKtce
一刻相册源:
https://photo.baidu.com/photo/wap/albumShare?shareId=73548008218255227
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
· 张高兴的大模型开发实战:(一)使用 Selenium 进行网页爬虫