javascript中有沒有指針

蝸牛 互聯網技術資訊 2022-07-02 42 0

本篇內容介紹了“javascript中有沒有指針”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

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

本教程操作環境:windows10系統、javascript1.8.5版、Dell G3電腦。

javascript中有指針嗎

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

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

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

示例如下:

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

但是,對于復合類型的變量,變量其實存儲的是一個『指針』, 當 d=c 后,他們指向的是同一個內存地址,所以當 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"]

擴展知識:

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

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

“javascript中有沒有指針”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注蝸牛博客網站,小編將為大家輸出更多高質量的實用文章!

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:niceseo99@gmail.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

評論

日本韩欧美一级A片在线观看