js 基本数据类型 和复杂数据类型的区别

//基本类型
      //指的是两个内存 所以n2还是10
      var n1 = 10;
      var n2 = n1;
      n1 = 20;
      console.log(n2);

      //复杂(引用)类型

      function Student(name,age,salary) {

          this.name = name;
          this.age = age;
          this.salary = salary;

      }
      //name 等这些属性都是在对象中储存的 s1 s2 指向的是同一个内存地址 所以s2输出的也是"mh"
      // s2f赋值的时候 没有新开辟一个作用域
      var  s1 = new Student("za",18,90);
      var s2 = s1;
      s1.name = "mh";
      console.log(s2.name);

      //基本类型 和复杂类型作为函数的参数
      //基本作为函数的参数 函数内部对参数的修改 不会修改外部的变量
      function f1(a) {
          a = 100;
      }
      var x = 1;
      f1(x);
      console.log(x);//输出是1

      function f2(stu) {
          stu.name = "zs";
      }
      var s = new Student("jj",18,100);

      f2(s);
      console.log(s.name);//输出的是zs



function f2(stu) {
    stu = new Student();
    stu.name = "zs";
}
var s = new Student("jj",18,100);

f2(s);
console.log(s.name);//这时候输出的就不是"zs" 而是"jj"


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值