18 - JavaScript variables _ _ scoped memory

基本类型和引用类型的值

	a)动态的属性
	
		创建对象:
			 	1》构造函数创建:new Object
				2》字面量创建:{}
					
		对象添加属性:对象.属性名称=值
		对象添加方法:对象.方法名称=function(){}
		

	b)复制变量值 			

		1》引用类型:如果是赋值的状态,引用类型是公用一个对象则互相影响

 		2》基本类型:如果是赋值状态,相当于是复制了一个副本(克隆版) 2个变量都是单独的则互相不影响

Here Insert Picture Description

 c)传递参数 函数(参数) : 参数===》只能传递值 
 d)检测类型: instanceof===》返回布尔值 如果匹配返回true		如果不匹配返回false


*******javascript存储**********
1》栈内存(基本类型)
2》堆内存(引用类型)

Here Insert Picture Description

JS中的作用域

代码(变量|函数)在某一个地方的作用

1》在全局范围内,声明的变量和函数,其实都是window对象的属性或者方法
2》例如函数中声明一个局部变量在全局中打不出来

JS中的作用域链

内部有权访问外部的局部变量或者函数
外部不能访问内部的局部变量或者函数

先找本层(本作用域)===>逐级向外查找

2》优先级

变量--->函数--->参数---->提升

函数(声明)===》不看执行顺序的

声明变量的事情

var a   ===>局部a
window.a   ====>全局a
a 		====>属于局部a,也属于全局a






function fn(){

	a = 10; ==>属于内部,也属于外部
	console.log(a);
	var a;  //提升后把上面a =10不在是属于内部和外部,只属于内部了
}
fn();

JS垃圾回收机制

1》标记清除

	最常用的一种垃圾回收机制

2》引用计数
		
	最不常用一种垃圾回收机制
	
3》手动清除
		
	把不用的变量或者对象或者函数===》(赋值为)= null
Published 25 original articles · won praise 0 · Views 211

Guess you like

Origin blog.csdn.net/weixin_42746553/article/details/104447384