通过实例了解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的版本实现执行不同的代码
May 11 Javascript
raphael.js绘制中国地图 地图绘制方法
Feb 12 Javascript
第四章之BootStrap表单与图片
Apr 25 Javascript
浅谈jQuery效果函数
Sep 16 Javascript
原生js实现轮播图的示例代码
Feb 20 Javascript
快速将Vue项目升级到webpack3的方法步骤
Sep 14 Javascript
浅谈angular4.0中路由传递参数、获取参数最nice的写法
Mar 12 Javascript
Vue组件之单向数据流的解决方法
Nov 10 Javascript
读懂CommonJS的模块加载
Apr 19 Javascript
基于Vue实现电商SKU组合算法问题
May 29 Javascript
Js参数RSA加密传输之jsencrypt.js的使用
Feb 07 Javascript
JS数据类型(基本数据类型、引用数据类型)及堆和栈的区别分析
Mar 04 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 数组和字符串互相转换实现方法
2013/03/26 PHP
php快速查找数据库中恶意代码的方法
2015/04/01 PHP
Zend Framework教程之Zend_Form组件实现表单提交并显示错误提示的方法
2016/03/21 PHP
PHP magento后台无法登录问题解决方法
2016/11/24 PHP
用最通俗易懂的代码帮助新手理解javascript闭包 推荐
2012/03/01 Javascript
caller和callee的区别介绍及演示结果
2013/03/10 Javascript
javascript获取设置div的高度和宽度兼容任何浏览器
2013/09/22 Javascript
同一个网页中实现多个JavaScript特效的方法
2015/02/02 Javascript
freemarker判断对象是否为空的方法
2015/08/13 Javascript
不用一句js代码初始化组件
2016/01/27 Javascript
javascript每日必学之封装
2016/02/23 Javascript
js捕捉键盘事件和按键键值的方法
2016/10/10 Javascript
老生常谈javascript的类型转换
2016/10/12 Javascript
JavaScript闭包和范围实例详解
2016/12/19 Javascript
自定义事件解决重复请求BUG的问题
2017/07/11 Javascript
vue 点击展开显示更多(点击收起部分隐藏)
2019/04/09 Javascript
微信小程序全选多选效果实现代码解析
2020/01/21 Javascript
在Windows服务器下用Apache和mod_wsgi配置Python应用的教程
2015/05/06 Python
Python中Django发送带图片和附件的邮件
2017/03/31 Python
利用python实现简单的邮件发送客户端示例
2017/12/23 Python
基于python 处理中文路径的终极解决方法
2018/04/12 Python
Flask框架响应、调度方法和蓝图操作实例分析
2018/07/24 Python
python通用数据库操作工具 pydbclib的使用简介
2020/12/21 Python
tensorflow2.0教程之Keras快速入门
2021/02/20 Python
css3截图_动力节点Java学院整理
2017/07/11 HTML / CSS
美国在线眼镜店:GlassesShop
2018/11/15 全球购物
中海讯通笔试题
2015/09/15 面试题
幼儿园教师备课制度
2014/01/12 职场文书
5.1手机促销活动
2014/01/17 职场文书
财务科科长岗位职责
2014/03/10 职场文书
2014年教师党员公开承诺书
2014/05/28 职场文书
党员活动总结
2015/02/04 职场文书
三八红旗手主要事迹材料
2015/11/04 职场文书
2016学习依法治国心得体会
2016/01/15 职场文书
USB TYPE-C 或将成为所有智能手机充电标准
2022/04/21 数码科技
linux目录管理方法介绍
2022/06/01 Servers