变量、作用域和内存问题

来源:互联网 发布:java重载与多态 编辑:程序博客网 时间:2024/05/19 13:42
js里的变量包括基本类型和引用类型,基本类型存储在栈中,引用类型的引用(指针)存储在栈中,数据存储在堆中。(对象数据大,占内存多,不宜存储在栈,会影响性能。引用类型访问数据通过栈的指针访问)基本类型不能动态添加属性,引用类型可以。## 复制变量值 ##var num1=5;var num2=num1;基本类型的复制是值复制,即num2=5中的5与num1不一样;var obj=new Object();var obj2=obj1;引用类型的复制是把保存在栈的引用复制,产生一个副本,同时这个副本指向堆中同一对象。(同一对象的不同引用)。在我理解,说到底就是**栈中数据的复制**。## 传参 ##值传递。(栈中的值,如同变量的复制一样)。## 检测类型 ##检测基本数据类型的值:typeof检测引用类型的值:instanceof(a instanceof b),typeof(返回object)。## 执行环境及作用域(context) ##全局执行环境:window对象。执行到某个函数时,将函数的执行环境推入环境栈,执行完毕,再从栈弹出,然后把控制权返回给之前的执行环境。作用域链:简单理解就是当前执行环境可访问当前执行环境乃至上层执行环境的变量和函数。## js中没有块级作用域 ##if(true){    var num=1;}alert(num);//1ES6用let可以限制其作用域在块级中let num## 垃圾回收 ##自动垃圾回收机制有时候数据不再有用,可设置为null,可解除引用,脱离执行环境,方便垃圾回收期下次执行时回收。
2 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 换新手机后微信头像都没有了怎么办 苹果系统维护换不了微信头像怎么办 系统通知栏不显示qq图标怎么办 快递号码写错了而且发货了怎么办 包裹遗忘在郑州东站安检口了怎么办 锁书包的锁头钥匙全掉了怎么办 平板电脑恢复出厂设置变英语怎么办 给国外银行汇款账号写错账号怎么办 顺丰快递暴力运输产品坏了怎么办 亚航订机票名字少写一个字母怎么办 如果淘宝付款七天内不发货怎么办 浪琴手表调了一下日期不走了怎么办 收件人号码写错快递柜已签收怎么办 医院名字写错了怎么办保险报销 电脑在使用中出现了英文字慕怎么办 下雨天了怎么办我好想你是什么歌 安卓手机不支持微信运动怎么办 装系统时无法跳过密匙怎么办 在msdn里下的系统没有网怎么办 w7电脑更新后系统没法激活怎么办 手机使用加速器后网速变卡怎么办 奥特曼ol分解了迪迦石像怎么办 左右棋牌游戏兑换总说系统护怎么办 四季海棠扦插以后黄叶卷叶怎么办 竹节海棠浇水多了叶子蔫了怎么办 社保停缴了里面的钱怎么办 王者荣耀英雄释放技能有延迟怎么办 买的桑拿木板颜色太深了怎么办 万一填写了奔跑吧诈骗信息该怎么办 深圳限行时段堵在路上怎么办 开车堵在路上到了限行时间怎么办 兄妹之间都不想照顾母亲我该怎么办 小孩扁体发炎睡觉呼吸声沉重怎么办 客所思pk3老驱动有杂音怎么办 手机打不开解压包密码怎么办 在香港专柜买东西柜员少给货怎么办 恶魔猎手第二神器任务没选择怎么办 电脑放久了开不了机怎么办 你在主持时说错话了怎么办 1、你在主持时说错话了怎么办? 领导让你替他参加重要会议怎么办