031 简单类型和复杂类型

原始数据类型: number,string,boolean,undefined, null,object
基本类型(简单类型),值类型: number,string,boolean
复杂类型(引用类型):object
空类型:undefined,null

值类型的值在哪一块空间中存储? 栈中存储
引用类型的值在哪一块空间中存储?对象在堆上存储,地址在栈上存储

值类型作为函数的参数,传递的是
引用类型作为函数的参数,传递的是地址

 var num=10;//值类型,值在栈上
        var obj={};//复杂类型,对象在堆,地址(引用)在栈

值类型之间传递,传递的是值

var num=10;
        var num2=num;//传递的值
        console.log(num2);  //10

        function f1(x) {
            x=100;
        }
        var num=10;
        f1(num);
        console.log(num);// 10

引用类型之间传递,传递的是地址(引用)

 var obj={
            name:"小明"
        };
        function f2(obj2) {
            obj2.name="小红";
        }
        console.log(obj.name);//  小明
        f2(obj);
        console.log(obj.name);//  小红

思考题:

 var num1 = 10;
        var num2 = num1;
        num1 = 20;
        console.log(num1);//20
        console.log(num2);//10


        var num = 50;
        function f1(num) {
            num = 60;
            console.log(num);  //60
        }
        f1(num);
        console.log(num);  //50


        var num1 = 55;
        var num2 = 66;
        function f1(num, num1) {
            num = 100;   //局部变量,因为作为参数是局部变量
            num1 = 100;
            num2 = 100;     //隐式全局变量
            console.log(num);//100
            console.log(num1);//100
            console.log(num2);//100
        }
        //函数调用
        f1(num1, num2);
       console.log(num1);//55
       console.log(num2);//100   不是66
       console.log(num);// 报错



        function Person(name,age,salary) {
            this.name = name;
            this.age = age;
            this.salary = salary;
        }
        function f1(person) {
            person.name = "ls";
            person = new Person("aa",18,10);
        }
        var p = new Person("zs",18,1000);
        console.log(p.name);   //zs
        f1(p);
        console.log(p.name);   //ls
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值