javascript的字串按引用複製和傳遞,按值來比較介紹與應用_javascript技巧
May 16, 2016 pm 05:44 PM
傳遞
引用
比較
按值和按引用的比較
Numbers 和 Boolean 類型的值 (true 和 false) 是按值來複製、傳遞和比較的。當按值複製或傳遞時,將在電腦記憶體中分配一塊空間並將原值複製到其中。然後,即使更改原來的值,也不會影響複製的值(反過來也是),因為這兩個值是獨立的實體。
物件、陣列以及函數是按引用來複製、傳遞和比較的。 當按位址複製或傳遞時,實際上是建立一個指向原始項目的指針,然後就像拷貝一樣來使用該指針。如果隨後變更原始項,則將同時變更原始項和複製項(反過來也是)。實際上只有一個實體;「複本」並不是一個真正的複本,而只是該資料的另一個引用。
按引用比較時,若要比較成功,兩個變數必須參考完全相同的實體。例如,兩個不同的 Array 物件即使包含相同的元素也將比較為不相等。要比較成功,其中一個變數必須為另一個的參考。要檢查兩個陣列是否包含了相同的元素,比較 toString() 方法的結果。
最後,字串是按引用複製和傳遞的,但是是按值來比較的。請注意,假如有兩個 String 物件(用 new String("something") 建立的),按引用比較它們,但是,如果其中一個或兩者都是字串值的話,按值比較它們。
字串是按引用複製和傳遞的,但是是按值來比較的。請注意,假如有兩個 String 物件(用 new String("something") 建立的),按引用比較它們,但是,如果其中一個或兩者都是字串值的話,按值比較它們。
var str1="aa";
var str1="aa";
var str =new String("aa");
var str3=str2;
function test(p){
var str4=p;
console.log(str4===str2);
}
console.log(str1===str2); //false
console.log(str3===str2); //truetest(str1);//false test(str2);//true
Numbers 和 Boolean 類型的值 (true 和 false) 是按值來複製、傳遞和比較的。當按值複製或傳遞時,將在電腦記憶體中分配一塊空間並將原值複製到其中。然後,即使更改原來的值,也不會影響複製的值(反過來也是),因為這兩個值是獨立的實體。
物件、陣列以及函數是按引用來複製、傳遞和比較的。 當按位址複製或傳遞時,實際上是建立一個指向原始項目的指針,然後就像拷貝一樣來使用該指針。如果隨後變更原始項,則將同時變更原始項和複製項(反過來也是)。實際上只有一個實體;「複本」並不是一個真正的複本,而只是該資料的另一個引用。
按引用比較時,若要比較成功,兩個變數必須參考完全相同的實體。例如,兩個不同的 Array 物件即使包含相同的元素也將比較為不相等。要比較成功,其中一個變數必須為另一個的參考。要檢查兩個陣列是否包含了相同的元素,比較 toString() 方法的結果。
最後,字串是按引用複製和傳遞的,但是是按值來比較的。請注意,假如有兩個 String 物件(用 new String("something") 建立的),按引用比較它們,但是,如果其中一個或兩者都是字串值的話,按值比較它們。
字串是按引用複製和傳遞的,但是是按值來比較的。請注意,假如有兩個 String 物件(用 new String("something") 建立的),按引用比較它們,但是,如果其中一個或兩者都是字串值的話,按值比較它們。
複製程式碼 程式碼如下:
var str1="aa";
var str1="aa";
var str =new String("aa");
var str3=str2;
function test(p){
var str4=p;
console.log(str4===str2);
}
console.log(str1===str2); //false
console.log(str3===str2); //true
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前
By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
擊敗分裂小說需要多長時間?
3 週前
By DDD
公眾號網頁更新緩存難題:如何避免版本更新後舊緩存影響用戶體驗?
3 週前
By 王林

熱門文章
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前
By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
擊敗分裂小說需要多長時間?
3 週前
By DDD
公眾號網頁更新緩存難題:如何避免版本更新後舊緩存影響用戶體驗?
3 週前
By 王林

熱門文章標籤

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)