通过实例了解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实现的鼠标链接提示效果生成器代码
Jun 28 Javascript
document.getElementById方法在Firefox与IE中的区别
May 18 Javascript
js下用eval生成JSON对象
Sep 17 Javascript
你必须知道的Javascript知识点之"this指针"的应用
Apr 23 Javascript
firefox下jquery ajax返回object XMLDocument处理方法
Jan 26 Javascript
jQuery中关于ScrollableGridPlugin.js(固定表头)插件的使用逐步解析
Jul 17 Javascript
Jquery实现弹性滑块滑动选择数值插件
Aug 08 Javascript
iscroll.js的上拉下拉刷新时无法回弹的解决方法
Feb 18 Javascript
JS实现复制内容到剪贴板功能
Feb 05 Javascript
JS库之ParticlesJS使用简介
Sep 12 Javascript
详解JavaScript中的函数、对象
Apr 01 Javascript
微信小程序利用云函数获取手机号码
Dec 17 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 日志缩略名的创建函数代码
2010/05/26 PHP
ThinkPHP 防止表单重复提交的方法
2011/08/08 PHP
用Php编写注册后Email激活验证的实例代码
2013/03/11 PHP
使用PHP和JavaScript判断请求是否来自微信内浏览器
2015/08/18 PHP
妙用Jquery的val()方法
2012/06/27 Javascript
JavaScript高级程序设计(第3版)学习笔记12 js正则表达式
2012/10/11 Javascript
Bootstrap项目实战之首页内容介绍(全)
2016/04/25 Javascript
异步加载JS、CSS代码(推荐)
2016/06/15 Javascript
JavaScript ES6中CLASS的使用详解
2016/11/22 Javascript
非常实用的vue导航钩子
2017/03/20 Javascript
在 Angular 中实现搜索关键字高亮示例
2017/03/21 Javascript
JS实现的加减乘除四则运算计算器示例
2017/08/09 Javascript
Vue-cli中为单独页面设置背景色的实现方法
2018/02/11 Javascript
微信小程序实现底部弹出框
2020/11/18 Javascript
Python获取apk文件URL地址实例
2013/11/01 Python
Python def函数的定义、使用及参数传递实现代码
2014/08/10 Python
Python HTMLParser模块解析html获取url实例
2015/04/08 Python
python使用PIL缩放网络图片并保存的方法
2015/04/24 Python
利用Python写一个爬妹子的爬虫
2018/06/08 Python
打包python 加icon 去掉cmd黑窗口方法
2019/06/24 Python
python字符串格式化方式解析
2019/10/19 Python
浅谈Python爬虫原理与数据抓取
2020/07/21 Python
如何让pre和textarea等HTML元素去掉滚动条自动换行自适应文本内容高度
2019/08/01 HTML / CSS
应用心理学个人求职信范文
2013/12/11 职场文书
招聘单位介绍信
2014/01/14 职场文书
幼儿园家长会邀请函
2014/01/15 职场文书
学生感冒英文请假条
2014/02/04 职场文书
大学老师推荐信
2014/02/25 职场文书
《埃及的金字塔》教学反思
2014/04/07 职场文书
服务承诺书格式
2014/05/21 职场文书
暑期社会实践先进个人主要事迹
2014/05/22 职场文书
主持人开场白台词
2015/05/29 职场文书
海上钢琴师观后感
2015/06/03 职场文书
文明上网主题班会
2015/08/14 职场文书
小学运动会开幕词
2016/03/04 职场文书
PostgreSQL通过oracle_fdw访问Oracle数据的实现步骤
2021/05/21 PostgreSQL