通过实例了解JS 连续赋值
作者:ommph 发布时间:2024-05-02 16:15:14
标签:js,连续,赋值,实例
这篇文章主要介绍了通过实例了解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引擎他找到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}的内存区。
那么根据图上可得:
a.x 不存在,故: => undefined
b.x => {n: 2}
来源:https://www.cnblogs.com/ommph/p/11512588.html


猜你喜欢
- 直接上例子。import pandas as pd df = pd.DataFrame({'class':['a
- 1、下载地址:MySQL官网2、解压解压之后的文件里边是没有data文件的,需要创建一个空文件夹命名为data(后面需要用),并且需要创建一
- 项目实现利用face++开发一个课堂签到的软件,实现面向摄像头即可完成记录学号、姓名和时间的签到工作。项目架构项目使用场景代码:流程代码,主
- 本文实例为大家分享了vue实现触底查询功能的具体代码,供大家参考,具体内容如下1.使用vant-list组件相关内容如下:2.对象绑定值的默
- 本文实例讲述了Python中顺序表原理与实现方法。分享给大家供大家参考,具体如下:Python中的顺序表Python中的list和tuple
- #!/usr/bin/env python#coding=utf-8import osfrom pyinotify import Watch
- 目录前言一、算法思想算法分析思想图解二、代码展示1.创建树节点结构2.实现倾倒动作主递归函数数据初始化总结前言有一个充满水的8品脱的水壶和两
- 解决2个问题:1.身份证之类的文本数据自动转为科学计数法的问题。2.中文乱码的问题excel从web页面上导出的原理。当我们把这些数据发送到
- 一)安装scrapy:1、打开cmd命令窗口,输入:pip install Scrapy。2、安装成功之后会显示下面字符,表示未将scrap
- 本文实例讲述了Python企业编码生成系统之系统主要函数设计。分享给大家供大家参考,具体如下:一 主要函数功能描述函数功能mkdir判断保存
- 1 如何创建vite项目?step 1 :?npm init vite@latest?yarn create vitestep2 :npm
- Git设置1.Git安装2.SSH密钥设置 生成密钥ssh-keygen -t rsa -C example@mail.com&n
- 1. 一个简单的字典我们先从写一个简单的字典示例开始,顺便看一下 python 字典的语法。student ={'姓名':&
- 创建一张作者表,author,创建外键与book表,多对多关系 ,外键字段放在那张表都可以,class Author(models.Mode
- vue-router切换组件时使组件不销毁默认地,使用vue-router切换组件时,离开的组件会被销毁,新进入地组件会创建。那么,有时候,
- JS是一段一段执行的(以<script>标签来分割),执行每一段之前,都有一个“预编译”,预编译干的活是:声明所有var变量(初
- TKinter库,Python 的 GUI 库非常多,之所以选择 Tkinter,一是最为简单,二是自带库,不需下载安装,随时使用,跨平台兼
- Python 基础教程之包和类的用法建立一个文件夹filePackage 在filePackage 文件夹内创建 __init__.py 有
- 在同事那整了个免安装版的Mysql,然后添加到window服务,但是中间出现很多问题,总结一下个人经验,希望其他人不要走弯路。1)在同事那或
- 那么,现在如果给出一个权限编号,要去检索出用后这个权限的用户集合,就会需要在逗号分隔的多个权限编号中去匹配给出的这个权限编号。如果使用lik