javascript中有沒有指針

本篇內(nèi)容介紹了“javascript中有沒有指針”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

十多年建站經(jīng)驗, 成都網(wǎng)站設(shè)計、成都做網(wǎng)站客戶的見證與正確選擇。成都創(chuàng)新互聯(lián)提供完善的營銷型網(wǎng)頁建站明細(xì)報價表。后期開發(fā)更加便捷高效,我們致力于追求更美、更快、更規(guī)范。

javascript中沒有指針,只有引用;指針指的是內(nèi)存地址,能夠操作指針表示程序可以直接操作內(nèi)存,而JavaScript腳本試運行在網(wǎng)頁的,瀏覽器以及操作系統(tǒng)都不允許JavaScript可以操作內(nèi)存,所以JavaScript腳本中沒有指針的概念,只能由瀏覽器分配內(nèi)存。

本教程操作環(huán)境:windows10系統(tǒng)、javascript1.8.5版、Dell G3電腦。

javascript中有指針嗎

JS 沒有指針(pointer),只有引用(reference)。

一個簡單的判斷依據(jù)就是:指針是可以有 ++ 操作的,但 JS 辦不到。

指針其實就是內(nèi)存地址,能夠操作指針,就表示程序可以直接操作內(nèi)存,這對于運行于網(wǎng)頁中的js腳本是非常危險的,瀏覽器以及操作系統(tǒng)都不可能讓這樣的事發(fā)生,所以js腳本不可能有指針的概念,只能引用由瀏覽器分配的內(nèi)存,至于這個內(nèi)存的物理地址究竟是什么,則至少對于js的編程者而言是不透明的。

示例如下:

let a = 888
let b = a
a = 999
console.log(a, b) // 999 888 對于『基本類型』的變量,a,b 相互是不影響的

但是,對于復(fù)合類型的變量,變量其實存儲的是一個『指針』, 當(dāng) d=c 后,他們指向的是同一個內(nèi)存地址,所以當(dāng) c 改變了,d 同樣也改變了:let c = ['a', 'b', 'c']

let d = c
d === c // true 都指向同一個『指針』呢
c[0] = 'x'
console.log(d) // ["x", "b", "c"]
而這樣let c = ['a', 'b', 'c']
let d = ['a', 'b', 'c'] // or 簡寫成 d = [...c]
d === c // false 變量 d 重新賦值了呢,所以和 c 就不是一伙的啦!
c[0] = 'x'
console.log(d) // ["a", "b", "c"]

javascript中有沒有指針

擴展知識:

指針,是C語言中的一個重要概念及其特點,也是掌握C語言比較困難的部分。指針也就是內(nèi)存地址,指針變量是用來存放內(nèi)存地址的變量,在同一CPU構(gòu)架下,不同類型的指針變量所占用的存儲單元長度是相同的,而存放數(shù)據(jù)的變量因數(shù)據(jù)的類型不同,所占用的存儲空間長度也不同。有了指針以后,不僅可以對數(shù)據(jù)本身,也可以對存儲數(shù)據(jù)的變量地址進行操作。

指針描述了數(shù)據(jù)在內(nèi)存中的位置,標(biāo)示了一個占據(jù)存儲空間的實體,在這一段空間起始位置的相對距離值。在 C/C++語言中,指針一般被認(rèn)為是指針變量,指針變量的內(nèi)容存儲的是其指向的對象的首地址,指向的對象可以是變量(指針變量也是變量),數(shù)組,函數(shù)等占據(jù)存儲空間的實體。

“javascript中有沒有指針”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

新聞名稱:javascript中有沒有指針
當(dāng)前地址:http://bm7419.com/article42/gejjec.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、自適應(yīng)網(wǎng)站、品牌網(wǎng)站制作、關(guān)鍵詞優(yōu)化、網(wǎng)頁設(shè)計公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)