通过实例了解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 相关文章推荐
firefox和IE系列的相关区别整理 以备后用
Dec 28 Javascript
Javascript 面向对象(二)封装代码
May 23 Javascript
Jquery Ajax方法传值到action的方法
May 11 Javascript
浅析AngularJS Filter用法
Dec 28 Javascript
jquery实现树形菜单完整代码
Dec 29 Javascript
微信小程序左滑删除效果的实现代码
Feb 20 Javascript
js浏览器滚动条卷去的高度scrolltop(实例讲解)
Jul 07 Javascript
vue父组件通过props如何向子组件传递方法详解
Aug 16 Javascript
基于react后端渲染模板引擎noox发布使用
Jan 11 Javascript
jQuery实现的简单图片轮播效果完整示例
Feb 08 jQuery
在Vue项目中取消ESLint代码检测的步骤讲解
Jan 27 Javascript
javascript实现点击小图显示大图
Nov 29 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冒泡排序、快速排序、快速查找、二维数组去重实例分享
2014/04/24 PHP
Laravel多用户认证系统示例详解
2018/03/13 PHP
简单的php购物车代码
2020/06/05 PHP
手把手教你自己写一个js表单验证框架的方法
2010/09/14 Javascript
jquery异步循环获取功能实现代码
2010/09/19 Javascript
jquery插件tooltipv顶部淡入淡出效果使用示例
2013/12/05 Javascript
跟我学Node.js(四)---Node.js的模块载入方式与机制
2014/06/04 Javascript
jquery中 $.expr使用实例介绍
2014/06/09 Javascript
Javascript监视变量变化的方法
2015/06/09 Javascript
Bootstrap入门书籍之(三)栅格系统
2016/02/17 Javascript
jQuery实现图片向左向右切换效果的简单实例
2016/05/18 Javascript
JavaScript实现页面无操作倒计时退出
2016/10/22 Javascript
浅谈AngularJs指令之scope属性详解
2016/10/24 Javascript
如何判断出一个js对象是否一个dom对象
2016/11/24 Javascript
使用JavaScript为一张图片设置备选路径的方法
2017/01/04 Javascript
javascript获取以及设置光标位置
2017/02/16 Javascript
详解Node.js利用node-git-server快速搭建git服务器
2017/09/27 Javascript
vue定义全局变量和全局方法的方法示例
2018/08/01 Javascript
Vue商品控件与购物车联动效果的实例代码
2019/07/21 Javascript
关于JS解构的5种有趣用法
2019/09/05 Javascript
Vue filter 过滤器、以及在table中的使用介绍
2020/09/07 Javascript
python二叉树遍历的实现方法
2013/11/21 Python
Python中title()方法的使用简介
2015/05/20 Python
Python 使用matplotlib模块模拟掷骰子
2019/08/08 Python
Tensorflow 卷积的梯度反向传播过程
2020/02/10 Python
python轮询机制控制led实例
2020/05/03 Python
斯德哥尔摩通票:Stockholm Pass
2018/01/09 全球购物
艺术应用与设计个人的自我评价
2013/11/23 职场文书
医科大学生的自我评价
2013/12/04 职场文书
党支部创先争优活动总结
2014/08/28 职场文书
党员教师群众路线思想汇报范文
2014/10/28 职场文书
2015年会计个人工作总结
2015/04/02 职场文书
超市收银员岗位职责
2015/04/07 职场文书
幼儿园重阳节活动总结
2015/05/05 职场文书
党员“一帮一”活动总结
2015/05/07 职场文书
Python  lambda匿名函数和三元运算符
2022/04/19 Python