zoukankan      html  css  js  c++  java
  • 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也发生了改变,最后的结果就是,函数内部的重新赋值影响了外部的数据

  • 相关阅读:
    三极管8050和8550对管的参数
    三极管9014 管脚
    水深不语,人稳不言
    编译结果分析
    三母运算符
    C语言关键词解释
    51定时器初值的计算
    聪明人都在远离手机虚假繁荣的“人脉”关系
    每段路,都是一种领悟
    你的灯亮着吗读后感二
  • 原文地址:https://www.cnblogs.com/ccv2/p/13056561.html
Copyright © 2011-2022 走看看