日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

012_原始值和引用值

發布時間:2025/4/17 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 012_原始值和引用值 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 在JavaScript中, 變量可以存在兩種類型的值, 即原始值和引用值。

2. 原始值

2.1.?存儲在棧(stack)中的簡單數據段, 也就是說, 它們的值直接存儲在變量訪問的位置。

2.2.?JavaScript有5種原始類型(primitive type), 即Undefined、Null、Boolean、Number和String。

var a = undefined; var b = null; var c = true; var d = false; var e = 1; var f = 'abc';

2.3.?typeof運算符對于null值會返回"Object"。這實際上是JavaScript最初實現中的一個錯誤。現在, null被認為是對象的占位符, 但從技術上來說, 它仍然是原始值。

3. 引用值

3.1.?存儲在堆(heap)中的對象, 也就是說, 存儲在變量處的值是一個指針(point), 指向存儲對象的內存處。

var a = new String('abc'); var b = new Number(1); var c = new Boolean(true); var d = ['abc', 1, true, false]; var e = new Array(); var f = {id: 1001, name: 'zs', age: 18}; var g = new Object();

4. JavaScript程序是解釋執行的。

5. JavaScript的解釋程序必須判斷該值是原始類型, 還是引用類型。要實現這一點, 解釋程序則需嘗試判斷該值是否為 ECMAScript 的原始類型之一, 即 Undefined、Null、Boolean、Number和String 型。由于這些原始類型占據的空間是固定的, 所以可將他們存儲在較小的內存區域棧中。這樣存儲便于迅速查尋變量的值。

6. 在許多語言中, 字符串都被看作引用類型, 而非原始類型, 因為字符串的長度是可變的。JavaScript打破了這一傳統, 它是唯一沒有固定大小的原始類型。

7. 如果一個值是引用類型的, 那么它的存儲空間將從堆中分配。由于引用值的大小會改變, 所以不能把它放在棧中, 否則會降低變量查尋的速度。相反, 放在變量的棧空間中的值是該對象存儲在堆中的地址。地址的大小是固定的, 所以把它存儲在棧中對變量性能無任何負面影響。

8. 原始值和引用值的堆棧分配

總結

以上是生活随笔為你收集整理的012_原始值和引用值的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。