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

  • 相关阅读:
    Ubuntu16.04安装openldap和phpldapadmin
    Java 8 中的抽象类和接口到底有啥区别?
    Redis 开发陷阱及避坑指南!
    Java 中的 6 颗语法糖
    Java 8 有多牛逼?打破一切你对接口的认知!
    Git操作常用的命令都在这里了。
    Github 太狠了,居然把 "master" 干掉了!
    微服务业务日志收集方案,写得非常好!
    Maven基本介绍与安装
    IntelliJ IDEA 调试 Java 8 Stream,实在太香了!
  • 原文地址:https://www.cnblogs.com/ccv2/p/13056561.html
Copyright © 2011-2022 走看看