- 基本类型和引用类型的值
- 动态的属性
- 复制变量值
- 传递参数(按值传递)
- 类型检测
- 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