通过实例了解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 window.opener的用法分析
Apr 07 Javascript
用js来解决ajax读取页面乱码
Nov 28 Javascript
JQuery表格内容过滤的实现方法
Jul 05 Javascript
在页面上用action传递参数到后台出现乱码的解决方法
Dec 31 Javascript
js的参数有长度限制吗?发现不能超过2083个字符
Apr 20 Javascript
SyntaxHighlighter 3.0.83使用笔记
Jan 26 Javascript
AngularJS基础教程之简单介绍
Sep 27 Javascript
javascript数据类型验证方法
Dec 31 Javascript
BootStrap3学习笔记(一)之网格系统
May 20 Javascript
js中使用使用原型(prototype)定义方法的好处详解
Jul 04 Javascript
解决Linux无法正常安装与卸载Node.js的方法
Jan 19 Javascript
微信小程序使用前置摄像头拍照
Oct 22 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的几个常用加密函数
2016/02/03 PHP
PHP中file_exists使用中遇到的问题小结
2016/04/05 PHP
php桥接模式应用案例分析
2019/10/23 PHP
二级域名转向类
2006/11/09 Javascript
jQuery的三种$()
2009/12/30 Javascript
javascript工厂方式定义对象
2014/12/26 Javascript
实现无刷新联动例子汇总
2015/05/20 Javascript
JS中字符串trim()使用示例
2015/05/26 Javascript
JS动态生成年份和月份实例代码
2017/02/04 Javascript
单击按钮发送验证码,出现倒计时的简单实例
2017/03/17 Javascript
基于jQuery封装的分页组件
2017/06/26 jQuery
vue使用 better-scroll的参数和方法详解
2018/01/25 Javascript
JavaScript实现的DOM绘制柱状图效果示例
2018/08/08 Javascript
laravel-admin 与 vue 结合使用实例代码详解
2019/06/04 Javascript
Vue elementui字体图标显示问题解决方案
2020/08/18 Javascript
Vue全局使用less样式,组件使用全局样式文件中定义的变量操作
2020/10/21 Javascript
JS实现页面侧边栏效果探究
2021/01/08 Javascript
[00:59]DOTA2背景故事第二期之四大基本法则
2020/07/07 DOTA
Python爬虫框架Scrapy安装使用步骤
2014/04/01 Python
Python通过递归遍历出集合中所有元素的方法
2015/02/25 Python
实例讲解Python中函数的调用与定义
2016/03/14 Python
python requests爬取高德地图数据的实例
2018/11/10 Python
使用Python实现跳帧截取视频帧
2019/05/31 Python
简单了解Pandas缺失值处理方法
2019/11/16 Python
Python气泡提示与标签的实现
2020/04/01 Python
在Pytorch中使用Mask R-CNN进行实例分割操作
2020/06/24 Python
Python 远程开关机的方法
2020/11/18 Python
canvas绘制表情包的示例代码
2018/07/09 HTML / CSS
会计电算化专业毕业生求职信范文
2013/12/10 职场文书
初二物理教学反思
2014/01/29 职场文书
人事专员岗位说明书
2014/07/29 职场文书
运动会加油稿50字
2015/07/21 职场文书
2019年共青团工作条例最新版
2019/11/12 职场文书
护士年终工作总结不会写?各科护士模板总结
2020/01/02 职场文书
nginx proxy_cache 缓存配置详解
2021/03/31 Servers
html+css实现环绕倒影加载特效
2021/07/07 HTML / CSS