JavaScript中的實值型別和參考型別

來源:互聯網
上載者:User
文章目錄
  • 一、擁抱JavaScript
  • 二、實值型別和參考型別話題
  • 三、JavaScript實值型別和參考型別有哪些
  • 四、如何理解實值型別和參考型別及舉例
  • 一、擁抱JavaScript
  • 二、實值型別和參考型別話題
  • 三、JavaScript實值型別和參考型別有哪些
  • 四、如何理解實值型別和參考型別及舉例
一、擁抱JavaScript

曾經名不經傳的JavaScript隨著AJAX的流行而身價倍增,現在JavaScript不再僅僅是WEB開發中一個可有可無的協助工具輔助,甚至 有了專門屬於它的職位“JavaScript工程師”,那怕你僅僅是一名WEB後台開發程式員,你都必須瞭解JavaScript,至少在一些相關招聘職 位要求上你可以看到“熟悉JavaScript優先”的字眼。甚至我還要告訴你,你將可以用JavaScript開發案頭軟體,這得益於Adobe AIR的另外一種開發模式,即用HTML+CSS+JavaScript開發AIR。

二、實值型別和參考型別話題

隨著部分有大型物件導向語言基礎朋友的介入,他們試著用JavaScript去類比面像對象的各種特徵,儘管有些類比顯得較為牽強,但也讓我們見識 到了JavaScript的強大與靈活性。本文暫不探討JavaScript物件導向編程技術。就講講JavaScript中的兩種變數類型:即實值型別和 參考型別,這通常又會讓你聯想到“堆棧”,另外還有“引用地址”或“指標”相關概念,有過Java或C#編程經驗的人相信對這兩種類型不陌生。下面就舉例 講一下這兩種類型在JavaScript中的體現、用法及注意事項。

三、JavaScript實值型別和參考型別有哪些

(1)實值型別:數值、布爾值、null、undefined。

(2)參考型別:對象、數組、函數。

四、如何理解實值型別和參考型別及舉例

我們可以用“連鎖店”和“連鎖店鑰匙”來理解,不知道以下比喻合不合適,^-^。

(1)實值型別理解:變數的交換等於在一個新的地方按照連鎖店的規範標準(統一店面理解為相同的變數內容)新開一個分店,這樣新開的店與其它舊店互不相關、各自運營。

【實值型別例子】

function chainStore()
{
    var store1='Nike China';
    var store2=store1;
    store1='Nike U.S.A.';
    alert(store2); //Nike China
}
chainStore();
//把一個實值型別(也可以叫基本類型)store2傳遞給另一個變數(賦值)時,其實是分配了一塊新的記憶體空間,因此改變store1的值對store2沒有任何影響,因為它不像參考型別,變數的交換其實是交換了指像同一個內容的地址。

(2)參考型別理解:變數的交換等於把現有一間店的鑰匙(變數引用地址)複製一把給了另外一個老闆,此時兩個老闆同時管理一間店,兩個老闆的行為都有可能對一間店的運營造成影響。

【參考型別例子】

function chainStore()
{
    var store1=['Nike China'];
    var store2=store1;
    alert(store2[0]); //Nike China
    store1[0]='Nike U.S.A.';
    alert(store2[0]); //Nike U.S.A.
}
chainStore();
//在上面的代碼中,store2隻進行了一次賦值,理論上它的值已定,但後面通過改寫store1的值,發現store2的值也發生了改變,這正是參考型別的特徵,也是我們要注意的地方。

轉載:

http://www.cnblogs.com/webflash/archive/2009/08/22/1552042.html

一、擁抱JavaScript

曾經名不經傳的JavaScript隨著AJAX的流行而身價倍增,現在JavaScript不再僅僅是WEB開發中一個可有可無的協助工具輔助,甚至 有了專門屬於它的職位“JavaScript工程師”,那怕你僅僅是一名WEB後台開發程式員,你都必須瞭解JavaScript,至少在一些相關招聘職 位要求上你可以看到“熟悉JavaScript優先”的字眼。甚至我還要告訴你,你將可以用JavaScript開發案頭軟體,這得益於Adobe AIR的另外一種開發模式,即用HTML+CSS+JavaScript開發AIR。

二、實值型別和參考型別話題

隨著部分有大型物件導向語言基礎朋友的介入,他們試著用JavaScript去類比面像對象的各種特徵,儘管有些類比顯得較為牽強,但也讓我們見識 到了JavaScript的強大與靈活性。本文暫不探討JavaScript物件導向編程技術。就講講JavaScript中的兩種變數類型:即實值型別和 參考型別,這通常又會讓你聯想到“堆棧”,另外還有“引用地址”或“指標”相關概念,有過Java或C#編程經驗的人相信對這兩種類型不陌生。下面就舉例 講一下這兩種類型在JavaScript中的體現、用法及注意事項。

三、JavaScript實值型別和參考型別有哪些

(1)實值型別:數值、布爾值、null、undefined。

(2)參考型別:對象、數組、函數。

四、如何理解實值型別和參考型別及舉例

我們可以用“連鎖店”和“連鎖店鑰匙”來理解,不知道以下比喻合不合適,^-^。

(1)實值型別理解:變數的交換等於在一個新的地方按照連鎖店的規範標準(統一店面理解為相同的變數內容)新開一個分店,這樣新開的店與其它舊店互不相關、各自運營。

【實值型別例子】

function chainStore()
{
    var store1='Nike China';
    var store2=store1;
    store1='Nike U.S.A.';
    alert(store2); //Nike China
}
chainStore();
//把一個實值型別(也可以叫基本類型)store2傳遞給另一個變數(賦值)時,其實是分配了一塊新的記憶體空間,因此改變store1的值對store2沒有任何影響,因為它不像參考型別,變數的交換其實是交換了指像同一個內容的地址。

(2)參考型別理解:變數的交換等於把現有一間店的鑰匙(變數引用地址)複製一把給了另外一個老闆,此時兩個老闆同時管理一間店,兩個老闆的行為都有可能對一間店的運營造成影響。

【參考型別例子】

function chainStore()
{
    var store1=['Nike China'];
    var store2=store1;
    alert(store2[0]); //Nike China
    store1[0]='Nike U.S.A.';
    alert(store2[0]); //Nike U.S.A.
}
chainStore();
//在上面的代碼中,store2隻進行了一次賦值,理論上它的值已定,但後面通過改寫store1的值,發現store2的值也發生了改變,這正是參考型別的特徵,也是我們要注意的地方。

轉載:

http://www.cnblogs.com/webflash/archive/2009/08/22/1552042.html

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.