JavaScript学习笔记4变量、作用域和内存问题

  • 基本类型和引用类型的值
    • 动态的属性
    • 复制变量值
    • 传递参数(按值传递)
    • 类型检测
      • typeof
      • instanceof
  • 执行环境及作用域
    • 延长作用域链
    • 没有块级作用域
  • 垃圾收集
    • 标记清除
    • 引用计数
    • 性能问题
    • 管理内存
  • 小结

基本类型和引用类型的值

/**
         * 基本类型:简单的数据 
         * 引用类型值:可能由多个值构成的对象
         * 
         * 5种基本数据类型Undefined Null Boolean Number String
         * 可以按值访问,应为可以操作保存在变量中的实际的值
         * 
         * 引用类型的值保存在内存中的对象。JS不允许直接访问内存中
         * 的位置,也就是说不能直接操作对象的内存空间。在操作对象时
         * 实际上是操作对象的引用,而非实际的对象。因此,应用类型
         * 的值是   (按引用访问的)
         */

传递参数

    /**
         *传递参数:按值传递(基本数据类型和引用数据类型都会在内存中
         * 复制一个副本)
         */

        function addTen(num){
            num+=10;
            return num;
        }

        var count =20;
        console.log(addTen(count)+',count='+count)

        //引用数据类型也是按值传递

        function setName (obj) {
            obj.name ='1111111';
        }
        var p =new Object()
        setName(p)
        //这个例子看起来 像按引用传递(其实不是)
        console.log(p.name)//1111111
        function setName (obj) {
            obj.name ='1111111';
            obj=new Object();
            obj.name = '222222';
        }
        //证明参数传递是按值传递 一图胜千言
        console.log(p.name)//1111111

这里写图片描述

类型检测

typeof

这里写图片描述

instanceof
这里写图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值