(1)基本數(shù)據(jù)類型按值傳遞
基本類型的變量是存放在棧區(qū)的(棧區(qū)指內(nèi)存里的棧內(nèi)存)粘室,不共享內(nèi)存空間
var a=1
var b=a
var a=2
console.log(a)//2
console.log(b)//1
(2)引用類型值按引用傳遞
引用類型值,引用類型的值是同時保存在棧內(nèi)存和堆內(nèi)存中的對象卜范。JavaScript和其他語言不同衔统,其不允許直接訪問內(nèi)存中的位置,也就是說不能直接操作對象的內(nèi)存空間海雪,那我們操作啥呢锦爵? 實(shí)際上,是操作對象的引用奥裸,所以引用類型的值是按引用訪問的险掀。
數(shù)組:
事例1
var a=[1,2,3]
var b=a
a.push(4)
console.log(a) //1,2湾宙,3樟氢,4
console.log(b)//1,2侠鳄,3埠啃,4
事例2
var a=[1,2,3]
var b=a
a=33 //注改變了指向
console.log(a) //33
console.log(b) //123
對象:
事例1
var obj={a:1,b:2}
var obj1=obj
obj.a=2
console.log(obj) // {a:2,b:2}
console.log(obj1) // {a:2,b:2}
事例2
var obj={a:1,b:2}
var obj1=obj
obj=22
console.log(obj) //22
console.log(obj1) //{a:1,b:2}