【JavaScript】JS中两种数据类型的传参


JavaScript的简单数据类型和复杂数据类型

01. 简单数据类型

  • 简单数据类型:也称为基本数据类型,值类型

  • 值类型:这是因为变量存储的是值本身,因此叫做值类型

  • 简单数据类型的传参:
    var num = 10;
    function fun(x){
        x = 20;
    }
    fun(num);
    
    1. num里面申请一个空间,并存放值 10;
    2. 调用函数将 num 里面的值传给了形参 x ;
    3. x是一个未声明的变量,其在里面也申请了另一个空间,用来存放实参传进来的值,
    4. x 进行操作,并不会影响 num空间里面的值
    • 简单数据类型的是存放在里面的
    • 简单数据类型传参是将栈里面的值传给形参

02. 复杂数据类型

  • 复杂数据类型:又被称为引用类型,通过new关键字创建的对象

  • 复杂数据类型的传参:
    function Person(name) {
        this.name = name;
    }
    
    var p = new Person("A");
    
    function func(v){
        v.name = "B";
    }
    func(p);
    
    1. 变量 p 在里面的申请一个空间用于存放 地址 ,这个 地址 会指向 里面的 Person(“A”)对象数据
    2. 调用函数,是将 p 指向的里面的地址,传给了形参 v,即 v 也申请了一个空间用于存放 地址
    3. 因为 p 和 v 的地址相同,所以他们指向的里面的数据实际上是同一个数据;
    4. 对 v 指向的数据进行操作,同样也会影响到 p 的数据,因为他们指向的是同一个数据
    • 复杂数据类型是存放在 里面的,在 中存放的是变量的值:地址,而这个地址指向存放在 里面的对象数据
    • 复杂数据类型传参是将 地址 传给了形参,而形参和实参的地址指向的是同一个对象数据

【注意】Javascript中是没有堆栈概念的,只是这种方式便于理解

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值