zoukankan      html  css  js  c++  java
  • JavaScript中的值类型和引用类型

    先抛出一个题目,阿里的笔试面试题(很基础,但确实是阿里的笔试题)

    var a = {"x": 1};

    var b = a;

    a.x = 2;

    a = {"x": 3};

    console.log(b.x);

    大家觉得最后在控制台输出的结果是多少?

    如果你答案是2,那你就没必要接下去看了。如果不是。那你就接着看下去来解决你的疑惑吧!

    JavaScript中的值类型和引用类型

    在javascript里面有两种变量类型,一种是值类型,一种是引用类型。

    值类型:数值、布尔型、null、undefined

    引用类型:数组、对象、函数

    值类型的变量的交换就就是普通的交换。比如:var a = 1; var b = a; a = 2;console.log(b);//结果是1。b不会因为a改变而改变

    引用类型和值类型就不一样了。比如:var a = [1,2];var b = a;//这时候将a赋值b跟上面的值类型的赋值就不一样 。这里可以用指针来理解,声明的a变量其实就可以把他当作一个指向数组[1,2]的指针。

    更形象点,可以这样理解:将[1,2]比作宝藏,a就是藏宝图。可以根据a找到[1,2]这个数组。其中 var b = a;就相当于复制了一个藏宝图给b,b就也可以找到[1,2]数组。明白了这个就好理解下面的东西了。

    如果a[0] = 3;那么console.log(b)就会输出[3,2]。因为a[0] = 3直接改变可宝藏里面的东西。所有b得到的数组也发生了变化。

  • 相关阅读:
    向局域网共享文件夹 写文件(示例)
    安装adb之后出现 找不到设备的情况
    .net 下发送calendar
    解决api 跨域 webconfig添加节点
    String类为什么是不可变的
    Sql
    2020职业规划
    摘录
    Docker
    软件测试工程师的职责是什么
  • 原文地址:https://www.cnblogs.com/yangwenxin/p/6567740.html
Copyright © 2011-2022 走看看