通过实例了解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 相关文章推荐
利用javaScript实现点击输入框弹出窗体选择信息
Dec 11 Javascript
ArtEditor富文本编辑器增加表单提交功能
Apr 18 Javascript
老生常谈 js中this的指向
Jun 30 Javascript
分享一个原生的JavaScript拖动方法
Sep 25 Javascript
JavaScript中清空数组的方法总结
Dec 02 Javascript
BootStrapTable服务器分页实例解析
Dec 20 Javascript
javascript构造函数以及原型对象的理解
Jan 13 Javascript
javascript实现日期三级联动下拉框选择菜单
Dec 03 Javascript
Node.js连接mongodb实例代码
Jun 06 Javascript
说说如何利用 Node.js 代理解决跨域问题
Apr 22 Javascript
vue项目中使用fetch的实现方法
Apr 25 Javascript
Vue实现导航栏的显示开关控制
Nov 01 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 利用AJAX获取网页并输出的实现代码(Zjmainstay)
2012/08/31 PHP
php数组声明、遍历、数组全局变量使用小结
2013/06/05 PHP
Windows下Apache + PHP SESSION丢失的解决过程全纪录
2015/04/07 PHP
php实现数组中索引关联数据转换成json对象的方法
2015/07/08 PHP
使用PHP如何实现高效安全的ftp服务器(二)
2015/12/30 PHP
IOS 开发之NSDictionary转换成JSON字符串
2017/08/14 PHP
PHP 断点续传实例详解
2017/11/11 PHP
PHP设计模式之原型模式定义与用法详解
2018/04/03 PHP
PHP封装的数据库模型Model类完整示例【基于PDO】
2019/03/14 PHP
JavaScript中的正则表达式简明总结
2014/04/04 Javascript
Javascript动画的实现原理浅析
2015/03/02 Javascript
AngularJS实现用户登录状态判断的方法(Model添加拦截过滤器,路由增加限制)
2016/12/12 Javascript
Vue响应式添加、修改数组和对象的值
2017/03/20 Javascript
JS实现的点击表头排序功能示例
2017/03/27 Javascript
Angularjs使用指令做表单校验的方法
2017/03/31 Javascript
JavaScript实现删除数组重复元素的5种常用高效算法总结
2018/01/18 Javascript
vue2单元测试环境搭建
2018/05/24 Javascript
Nuxt.js 静态资源和打包的操作
2020/11/06 Javascript
el-table表头根据内容自适应完美解决表头错位和固定列错位
2021/01/07 Javascript
[00:43]DOTA2小紫本全民票选福利PA至宝全方位展示
2014/11/25 DOTA
[57:12]完美世界DOTA2联赛循环赛 Inki vs Matador BO2第一场 10.31
2020/11/02 DOTA
在Python中用has_key()方法查找键是否存在的教程
2015/05/21 Python
python设置环境变量的作用和实例
2019/07/09 Python
python实现的批量分析xml标签中各个类别个数功能示例
2019/12/30 Python
h5调用摄像头的实现方法
2016/06/01 HTML / CSS
Seavenger官网:潜水服、浮潜、靴子和袜子
2020/03/05 全球购物
PHP面试题集
2016/12/18 面试题
小学语文国培感言
2014/03/04 职场文书
2014年基层党组织公开承诺书
2014/03/29 职场文书
庆祝儿童节标语
2014/10/09 职场文书
简单的个人租房协议书范本
2014/11/26 职场文书
2015年护士节活动总结
2015/02/10 职场文书
辩护词范文大全
2015/05/21 职场文书
2016形势与政策学习心得体会
2016/01/12 职场文书
优秀乡村医生事迹材料(2016精选版)
2016/02/29 职场文书
授权协议书范本(3篇)
2019/10/15 职场文书