js 变量,内存管理

数据类型

  1. 值类型: undefined,null ,boolean,number,string
  2. 引用类型: 对象object

属性

var person = new Object();
persion.name = "nike";
alert(person.name);// "nike"
// 值 复制
var num = 5;
var num1 = num;//num num1都是5但是二者是完全独立的,任何操作不会相互影响
// 引用 值
var obj = new Object();
var obj1 = obj;
obj1.name = "11";
alert(obj2.name);// "11"

instanceof

var person = new Object();
alert(person instanceof Object);//

延长作用域

  1. with 语句
  2. try catch的catch块
function builder(){
var qs = "sasa";
with(location){
  var url = qs+href;
}
return url;
}

没有块级作用域

(没有块级作用域,如何做?)[http://imweb.io/topic/5665683bd91952db73b41f5e]

if(true){
 var color = "blue";
}
alert(color);//blue

for(var i = 0,i<10,i++){
 do something(i);
}
alert(i);// 10

内存管理

  1. 标记清除
  2. 引用计数
// 循环引用
var obj = new Object();
var obj2 = new Object();

obj.people = obj2;
obj2.dog = obj1;
// 解决(手动断开)
` ``
obj.people = null;
obj2.dog = null;

// 注意手工解除引用
function createPerson(name){
var local = new Object();
local.name = name;
return local;
}
var person = createPerson("xiao ming");
// 手工解除
person = null;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第一章: JS简介 从当初简单的语言,变成了现在能够处理复杂计算和交互,拥有闭包、匿名函数, 甚至元编程等...
    LaBaby_阅读 1,703评论 0 6
  • 如何控制alert中的换行?\n alert(“p\np”); 请编写一个JavaScript函数 parseQu...
    heyunqiang99阅读 1,103评论 0 6
  • 一、面向过程和面向对象的区别、联系 1.面向过程编程:注重解决问题的步骤,分析问题需要的每一步,实现函数依次调用。...
    空谷悠阅读 908评论 1 11
  • Chapter 5 引用类型 Object类型 创建Object实例new Object()var person ...
    云之外阅读 399评论 0 0
  • 资产是指所有权在企业方的,能以货币计量并为企业提供经济效益的经济资源,并包括债权和其他权利。 举几个例子。...
    小新家的发糕铺阅读 463评论 0 0