通过实例了解JS 连续赋值


Posted in Javascript onSeptember 24, 2019

这篇文章主要介绍了通过实例了解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引擎语法解析,会先去从左到右寻找有没有未声明的变量,如果有就把该变量提升至作用域顶部并声明该变量。那么恭喜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}的内存区。

通过实例了解JS 连续赋值

那么根据图上可得:

a.x 不存在,故: => undefined

b.x => {n: 2}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
dojo 之基础篇(二)之从服务器读取数据
Mar 24 Javascript
[原创]后缀就扩展名为js的文件是什么文件
Dec 06 Javascript
基于jQuery的投票系统显示结果插件
Aug 12 Javascript
JSON+HTML实现国家省市联动选择效果
May 18 Javascript
jquery实现网页的页面平滑滚动效果代码
Nov 02 Javascript
JS动态改变浏览器标题的方法
Apr 06 Javascript
Node.js的npm包管理器基础使用教程
May 26 Javascript
jquery tmpl模板(实例讲解)
Sep 02 jQuery
微信小程序开发之好友列表字母列表跳转对应位置
Sep 26 Javascript
解析vue data不可以使用箭头函数问题
Jul 03 Javascript
Vue核心概念Getter的使用方法
Jan 18 Javascript
js实现上传图片到服务器
Apr 11 Javascript
layui--select使用以及下拉框实现键盘选择的例子
Sep 24 #Javascript
JS防抖和节流实例解析
Sep 24 #Javascript
vue.js实现图书管理功能
Sep 24 #Javascript
layui table单元格事件修改值的方法
Sep 24 #Javascript
Javascript Dom元素获取和添加详解
Sep 24 #Javascript
微信小程序全局变量的设置、使用、修改过程解析
Sep 24 #Javascript
layui监听select变化,以及设置radio选中的方法
Sep 24 #Javascript
You might like
PHP处理会话函数大总结
2015/08/05 PHP
基于jquery的拖动布局插件
2011/11/25 Javascript
关于scrollLeft,scrollTop的浏览器兼容性测试
2013/03/19 Javascript
js setTimeout 常见问题小结
2013/08/13 Javascript
使用jquery实现IE下按backspace相当于返回操作
2014/03/18 Javascript
js 调用百度地图api并在地图上进行打点添加标注
2014/05/13 Javascript
JavaScript数值转换的三种方式总结
2014/07/31 Javascript
介绍JavaScript的一个微型模版
2015/06/24 Javascript
七个不允许错过的jQuery小技巧
2015/12/21 Javascript
详解javascript实现瀑布流列式布局
2016/01/29 Javascript
jQuery轮播图效果精简版完整示例
2016/09/04 Javascript
easyui datagrid 大数据加载效率慢,优化解决方法(推荐)
2016/11/09 Javascript
原生和jQuery的ajax用法详解
2017/01/23 Javascript
jQuery插件MovingBoxes实现左右滑动中间放大图片效果
2017/02/28 Javascript
微信小程序 引入es6 promise
2017/04/12 Javascript
Ionic3 UI组件之Gallery Modal详解
2017/06/07 Javascript
js模拟百度模糊搜索的实例
2017/08/04 Javascript
浅谈python标准库--functools.partial
2019/03/13 Python
windows下安装Python虚拟环境virtualenvwrapper-win
2019/06/14 Python
pandas实现to_sql将DataFrame保存到数据库中
2019/07/03 Python
pygame实现贪吃蛇游戏(下)
2019/10/29 Python
Python数据可视化:顶级绘图库plotly详解
2019/12/07 Python
python使用ctypes调用扩展模块的实例方法
2020/01/28 Python
python opencv pytesseract 验证码识别的实现
2020/08/28 Python
django使用channels实现通信的示例
2020/10/19 Python
HTML5 新标签全部总汇(推荐)
2016/06/13 HTML / CSS
UNOde50美国官网:西班牙珠宝品牌
2020/08/15 全球购物
C++面试题目
2013/06/25 面试题
乡镇纠风工作实施方案
2014/03/22 职场文书
超市七夕促销活动方案
2014/08/28 职场文书
教师国庆节演讲稿范文2014
2014/09/21 职场文书
幼儿园教师工作总结2015
2015/04/02 职场文书
2015年学校禁毒工作总结
2015/05/27 职场文书
读《解忧杂货店》有感:请相信一切都是最好的安排
2019/11/07 职场文书
Pytorch中Softmax与LogSigmoid的对比分析
2021/06/05 Python
Z-Order加速Hudi大规模数据集方案分析
2022/03/31 Servers