每個變數都對應一塊記憶體,變數名用來查詢對應的記憶體,而變數的值就是記憶體中所儲存的資料。
在js中變數中所儲存的是基本資料型別(字串、數字、布林)和物件的位址值。
// an highlighted block
var age=
18;//這裡的就是基本資料型別
var obj=
//這裡其實obj中存放的是這個內容的位址值,通過位址值來找到。
var obj1=
var obj2=obj1 //這時obj2中儲存的是obj1的內容(的位址值}
obj1.name=
'alice'
console.
log(obj2.name)
//alice
//因為obj2與obj1都指向這個內容的位址值,所以改變obj1,相當於就改變了整個內容裡面的name
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
var obj1=
var obj2=obj1
obj2.age=
20console.
log(obj2.name)
//mark
function
change
(obj)
fn(obj1)
console.
log(obj2.name)
//alice
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
var obj1=
var obj2=obj1
obj1=
//這obj1新指向了乙個內容
console.
log(obj2.age)
//20,此時obj2指向這個內容
console.
log(obj1.name,obj1.age)
//mark 21
//obj1指向
function
change
(obj)
}change
(obj1)
//這個函式執行時obj1賦值給函式的形參obj
//此時obj和obj1都指向這個內容
//然後函式往下執行,obj指向新的內容,而obj1還是指向。
console.
log(obj1.age)
//21
關於 js 中 this 的理解
今天在寫乙個tab選項卡切換時遇到乙個 this 的引用問題,做個記錄加深一下理解。定時器 var timer null var lis document.getelementsbytagname li for var i 0 i 給每個li元素新增自定義屬性id,值為當前li元素在lis中的索引 ...
關於JS變數重名
var a hellow function test test 如上面一段 執行結果為 undefined 1 咋一看略顯奇怪 為什麼第一次alert的不是 hellow 這是因為js中對變數宣告 和 變數賦值 的區別 在js指令碼執行之前,會先將已宣告的函式進行解析 解析過程中用var宣告的變數就...
js全域性變數的理解
一 區域性變數和全域性變數重名會覆蓋全域性變數 二 提到全域性變數與區域性變數不得不說明的乙個知識點就是變數提公升 這是乙個坑 與c c 逐行執行 不同,js引擎的工作方式是,先獲取所有被宣告的變數再逐一執行,所有變數的宣告語句都會被提公升到當前 塊的頭部 注 塊指的是function的乙個 通常的...