一、擁抱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的值也發生了改變,這正是引用類型的特征,也是我們要注意的地方。