第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請解釋一些ECMAscript中的概念含義?

請解釋一些ECMAscript中的概念含義?

侃侃爾雅 2018-10-21 17:13:50
原始值存儲在棧(stack)中的簡單數(shù)據(jù)段,也就是說,它們的值直接存儲在變量訪問的位置。 // 變量訪問的位置是什么意思?原始值存儲在變量處的值是什么?希望能和下面的引用值存儲在變量處的值做一個類比。麻煩以通俗的話語解釋,歡迎多舉例子,這樣好理解。引用值存儲在堆(heap)中的對象,也就是說,存儲在變量處的值是一個指針(point),指向存儲對象的內(nèi)存處。/* 引用值指的是對象嗎?這里說的存儲在變量處的值為一個指針,指針怎么理解?/*
查看完整描述

1 回答

?
慕勒3428872

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超6個贊

背這種概念在初學(xué)時意義不大
多寫代碼就能理解了

簡單說明下, ECMAScript有以下基礎(chǔ)數(shù)據(jù)類型
Function, Object, String, Number, Boolean, Undefined
Object也可以細(xì)分出Array, RegExp等對象類型
只有Function, Object被當(dāng)作heap中的對象, 它的特點(diǎn)是你可以增添其鍵值對
例如
Func = function(){}
Func.test = 'test'
console.log(Func.test)
這就產(chǎn)生了把它作為參數(shù)傳遞時的問題, 因?yàn)閷ο蟮目梢砸米陨?br/>比如
A = [0,1,2]
A[1] = A
console.log(A + '')
B = A
B[1] = 1
console.log(A + '')
那麼就無法通過簡單的操作復(fù)制一個對象, 於是以上的Func, A都只存儲一個指針

而對於其它類型的數(shù)據(jù), 都可以通過有限的步驟, 高效的復(fù)制
比如
N = 0
M = N
++N
console.log(M)
可以看出此處M, N所指向的數(shù)據(jù)空間是不同的
當(dāng)然在某些瀏覽器中, 為了字符串的高效操作, 它把長度較小的字符串全部放進(jìn)內(nèi)存特定位置, 用於減少復(fù)制產(chǎn)生的消耗

更簡單的講, 就是
stack中值在傳遞/賦值等操作時是產(chǎn)生新的副本的
heap不會產(chǎn)生新的副本

當(dāng)然, 解釋內(nèi)核的詳細(xì)解析情況, 參閱ECMA-262.pdf



查看完整回答
反對 回復(fù) 2018-11-16
  • 1 回答
  • 0 關(guān)注
  • 486 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號