javascript的資料型別之基本型別和引用型別
不知道在初學js的同學對下面的程式碼有沒有疑惑:
var a = [1,2,3];
var b = a;
b.push(4);
console.log(a); // [1,2,3,4]
var c = 1;
var d = c;
d =2;
console.log(c); // 1
為什麼這兩段程式碼會有不一樣的結果?在第一段中,明明修改的b,為何a也改了?這就是基本型別和引用型別的區別了。一、概念
在JavaScript高階程式設計第68頁是這麼介紹的,ECMAScript變數可能包含兩種不同資料型別的值:基本型別值和引用型別值。基本型別值指的是簡單的資料段,而引用型別值指那些可能由多個值構成的物件。
二、基本型別
Underfined、Null、Boolean、Number和String 五種。
特點:
1. 儲存在棧中;
2. 每次複製時,在棧記憶體中建立一個新的記憶體存該變數。兩個變數互不影響。
三、引用型別
除去基本型別的五種。
特點:
1. 儲存在堆中;
2. 每次複製時,只是對引用指標進行傳遞,兩個變數共用同一個記憶體。
相關推薦
javascript的資料型別之基本型別和引用型別
不知道在初學js的同學對下面的程式碼有沒有疑惑:var a = [1,2,3]; var b = a; b.push(4); console.log(a); // [1,2,3,4]var c = 1; var d = c; d =2; console.log(c); //
JS中基本資料型別和引用型別最根本的區別
前言 JS中的型別只有6種,其中基本資料型別有5種分別為string,number,boolen,null,undefined,引用型別有一種,就是object,object是一個大的綜合體,在JS中除了那5個基本資料型別以外,其他的一切皆物件。 正文 兩個對比的例
java基本資料型別和引用型別以及他們的儲存方式
1、基本資料型別: byte 8位 short 16 位 int 32 位 long 64位 float 32位 double 64位 2、基本資料型別和引用資料型別的儲存位置: java中的基本資料型別是儲存在棧中還是儲存在堆中取決於基本型別
資料型別分為基本型別和引用型別
基本型別為:number,string,boolean, undefined , null 引用型別為:Date,Function , Array, Object,正則表示式,核心是Object和Function 一、number
記憶體探尋1之——值型別和引用型別的記憶體分配機制
String物件和值型別的記憶體分配機制: 同樣由前延伸,上上篇《由String型別分析,所產生的對引數傳遞之惑的解答》中,最後提及,如果將引用型別的按值傳遞和按引用傳遞,用託管堆表
python中的資料型別之元組和字典
一、元組:俗稱不可變的列表,又被稱為只讀列表。元組用小括號括起來,裡面可以放任何資料型別的資料,查詢可以,迴圈也可以,切片也可以,但就是不能修改。 注意:如果元組中只有一個元素,一定要加一個逗號,否則就不是元組。 >>> tu = (1,"Tanxu","A") #建立一個元組,用
python資料型別之列表(list)和其常用方法
列表是python常用資料型別之一,是可變的,可由n = []建立,也可由n = list()建立,第一種方法更常用。 常用方法總結: # 建立方法 n = [] 或者 n = list() # index 查詢索引值 li = ['Edward', 'Mark'
python資料型別之字典(dict)和其常用方法
字典的特徵: key-value結構key必須可hash,且必須為不可變資料型別、必須唯一。 # hash值都是數字,可以用類似於2分法(但比2分法厲害的多的方法)找。可存放任意多個值、可修改、可以不唯一無序查詢速度快常用方法: info = {'stu01': 'alex', 'stu02':
python資料型別之集合(set)和其常用方法
集合是一個無序的,不重複的資料組合作用(集合的重點):1.去重,把一個列表變成集合就自動去重了2.關係測試,測試兩組資料庫之前的交集、差集、並集等關係 s = {1, 1, 2, 2, 3, 4, 'a', 'a', '!', '!'} print(type(s)) # <class 'set
java中,方法引數是基本型別和引用型別的區別
方法引數是基本型別時,傳遞的是值。 方法引數是引用型別時,傳遞的是記憶體地址值 當引數是基本型別時,在呼叫方法時將值傳遞到方法中,執行方法,執行結束方法退出,對原本main中定義的變數沒有任何操作(方法中沒有return)。即:此時只跟棧有關係,方法執行完之後(方法中沒有return),會彈棧。
基本型別和引用型別區別和指向問題
基本型別: null, undefined, string, boolean, number (存放在棧記憶體中) 引用型別: array, object (存放在堆記憶體中) 1. 基本型別指標問題 var a=2; var b=a; b=3; console.log(a);//
基本型別和引用型別作為引數傳遞(重要)
基本型別和引用型別作為引數傳遞 引用型別資料和基本型別資料作為引數傳遞有沒有差別呢?我們用如下程式碼進行說明,並配合圖解讓大家更加清晰 1.基本資料型別傳遞 基本型別作為引數傳遞時,其實就是將基本型別變數x空間中的值複製了一份傳遞給呼叫的方法show(),當在show()方法中
資料型別的基本使用和列表字典
# 1.垃圾回收機制# 什麼是垃圾:當一個值身上沒有繫結任何變數名時(該值的引用技術=0時),該值就是垃圾# # del x(解除捆綁 減少引用計數)# #引用計數增加# age=18 #18的引用計數=1# x=age# 18的引用計數=2# print(age)# print(x)## 引用計數減少# a
JS中基本型別和引用型別分別指的的是什麼?有何區別?
這裡是修真院前端小課堂,每篇分享文從 【背景介紹】【知識剖析】【常見問題】【解決方案】【編碼實戰】【擴充套件思考】【更多討論】【參考文獻】 八個方面深度解析前端知識/技能,本篇分享的是: 【JS中基本型別和引用型別分別指的的是什麼?有何區別? 】 1.背
基本型別值和引用型別值
基本型別的值源自以下5中基本資料型別:Undefined、Null、Boolean、Number、String。 引用型別也就是物件型別Object type,比如:Object 、Array 、Function 、Data等。 基本型別值和引用型別值具有以下特點: 基本型別
[10]基本型別和引用型別的引數傳遞(圖)
前言:主要為個人筆記 基本型別 程式碼: class Demo{ public static void main(String[] args){ int x=4;
js中的基本型別和引用型別
基本資料型別:按值訪問,可操作儲存在變數中的實際的值。基本型別值指的是簡單的資料段。 基本資料型別有這五種:Undefined、Null、String、Number、Boolean。 引用型別:當複製儲存著物件的某個變數時,操作的是物件的引用,但在為物件新增屬性時,操
基本型別和引用型別比較的坑
java數值型別分為基本型別和引用型別,這裡以int和Integer型別為例,分析一下在開發過程中遇到的坑並給出瞭如何規避的方案, 在很多開發場景中我們一般會將入參設定為引用型別譬如Integer,在方法內部可能會出現比較情況,譬如一個代表order_type的欄位
java面向物件(類與物件,區域性變數成員變數,基本型別和引用型別作為引數傳遞)
一.類和物件的區別 類是對某一類事物的抽象描述,而物件用於表示現實中該類事物的個體 可以將玩具模型看作是一個類,將一個個玩具看作物件,從玩具模型和玩具之間的關係便可以看出類與物件之間的關係。類用於描述多個物件的共同特徵,它是物件的模板。物件用於描述現實中的個體,它是類的例項 二.區域性變數和成員變數
php資料型別之自動轉換和強制轉換------08
目錄 一: php資料型別之自動轉換和強制轉換 二: 布林值的自動型別轉換 三: 其他型別的自動型別轉換 四: 強制型別轉換 一: php資料型別之自動轉換和強制轉換 1.PHP在PHP 5.x階段都是完全的弱型別的程