• JavaScript——简单类型与复杂类型


    1. 简单类型与复杂类型

    简单类型又叫做基本数据类型或者值类型,复杂类型又叫做引用类型。
    值类型:简单数据类型/基本数据类型,在存储时变量中存储的是值本身,因此叫做值类型 string ,number,boolean,undefined,null

    注意:null的数据类型如果使用 typeof来验证,得到的是Object,它的主要用途是:如果我们打算把某个变量存储为对象,但是还没想好放什么,可以先给null。
    引用类型:复杂数据类型,在存储时变量中存储的仅仅是地址(引用),因此叫做引用数据类型

    通过 new 关键字创建的对象(系统对象、自定义对象),如 Object、Array、Date等

     

    简单数据类型直接在栈里面开辟一个空间,里面存放的是值

    复杂数据类型会先在站里面开辟一个空间,里面存放的是地址,然后在堆里面开辟一个空间,里面存放的才是值,那个地址指向的就是堆里面开辟的空间

    5. 简单类型传参

    函数的形参也可以看做是一个变量,当我们把一个值类型变量作为参数传给函数的形参时,其实是把变量在栈 空间里的值复制了一份给形参,那么在方法内部对形参做任何修改,都不会影响到的外部变量。 

    6. 复杂类型传参

    函数的形参也可以看做是一个变量,当我们把引用类型变量传给形参时,其实是把变量在栈空间里保存的堆地 址复制给了形参,形参和实参其实保存的是同一个堆地址,所以操作的是同一个对象。 

    f1(p);这行代码实际上是把p的地址赋值给了x,也就是p和x指向同一个地址

    在执行函数的时候,x.name = "张学友";这句代码修改了name的值,这个修改导致p指向的地址里面的name也发生了改变,最后的结果就是,函数内部的重新赋值影响了外部的数据

  • 相关阅读:
    sql行列互转
    用户角色权限设计思路
    树节点类型数据的Datatable转Json
    [C#]最简单的Base64加密解密
    WEB打印控件Lodop(V6.x)使用说明及样例
    js代码 设为首页 加入收藏
    Json字符转化成对象
    C++函数返回值为const
    7.双指针(two pointer)
    线程同步与锁
  • 原文地址:https://www.cnblogs.com/ccv2/p/13056561.html
Copyright © 2020-2023  润新知