通过实例了解JS 连续赋值
作者:ommph 时间:2024-05-02 16:15:14
这篇文章主要介绍了通过实例了解JS 连续赋值,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
问题:
var a = {n: 1};
var b = a;
a.x = a = {n: 2};
console.log(a.x); //undfined
console.log(b.x); //{a:2}
根据js引擎语法解析,会先去从左到右寻找有没有未声明的变量,如果有就把该变量提升至作用域顶部并声明该变量。那么恭喜js引擎他找到a.x这个属性没有声明,那么他会在{n: 1}这个内存区声明一个x属性等待赋值!
语法解析完成后,开始进行运算(ps:赋值运算),首先将a变量的指针指向了一个新的内存区{n: 2},那么a变量脱离了对内存区{n: 1}的引用关系。
但是此时{n:1 }这个内存区并没有被GC回收因为b变量的指针依然指向它。并且因为之前就声明了x属性所以该内存区
增加了X属性。那么X属性指向哪儿呢?a.x = a = {n: 2}它的返回值就是{n: 2}的内存区。
那么根据图上可得:
a.x 不存在,故: => undefined
b.x => {n: 2}
来源:https://www.cnblogs.com/ommph/p/11512588.html
标签:js,连续,赋值,实例
0
投稿
猜你喜欢
vue3+ts如何通过lodash实现防抖节流详解
2024-05-02 16:32:13
layer页面跳转,获取html子节点元素的值方法
2024-04-29 13:43:15
Python实现读取txt文件并转换为excel的方法示例
2023-07-25 15:20:16
anaconda python3.8安装后降级
2021-09-12 05:28:51
动态语言、动态类型语言、静态类型语言、强类型语言、弱类型语言介绍
2023-04-24 19:48:44
基于pandas向csv添加新的行和列
2021-11-29 02:28:56
在pytorch中动态调整优化器的学习率方式
2022-08-14 00:30:57
Pytorch实现基于CharRNN的文本分类与生成示例
2023-06-29 03:40:32
Python sklearn 中的 make_blobs() 函数示例详解
2022-07-24 21:45:48
通用的下拉菜单__用DL\\DD\\DT解决无法遮住select的问题
2008-07-28 13:28:00
Windows 下 MySQL 8.X 的安装教程
2024-01-14 03:05:33
python内存管理分析
2022-04-16 22:03:03
mysql复制中临时表的运用技巧
2024-01-20 10:51:49
新年快乐! python实现绚烂的烟花绽放效果
2022-01-15 13:18:00
SQL Server错误代码大全及解释(留着备用)
2012-07-11 16:17:03
Mysql使用Describe命令判断字段是否存在
2011-04-25 18:27:00
数据库查询优化(主从表的设计)
2024-01-18 16:25:52
MySql版本问题sql_mode=only_full_group_by的完美解决方案
2024-01-18 16:08:14
python实操案例练习(七)
2021-09-23 01:01:03
python 七种邮件内容发送方法实例
2022-01-13 21:06:38