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

时间:2024-04-01 13:34:50

//基本类型
      //指的是两个内存 所以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

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


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

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