1.變量
1.1 變量的概念
????????JavaScript中的變量與其他語(yǔ)言中的變量有很大區(qū)別。它是松散類(lèi)型的(不存在定義某個(gè)變量必須要保存何種數(shù)據(jù)類(lèi)型值的規(guī)則,變量的值及其數(shù)據(jù)類(lèi)型可以在腳本的生命周期內(nèi)發(fā)生改變)。
? ? ????一般ECMAScript變量包含兩種不同數(shù)據(jù)類(lèi)型的值:基本類(lèi)型值和引用類(lèi)型值?;绢?lèi)型值包含Undefined、Null、Boolean、Number和String(與其他語(yǔ)言不同,在JavaScript中,String不是引用類(lèi)型)。引用類(lèi)型值指那些可能由多個(gè)值構(gòu)成的對(duì)象?;緮?shù)據(jù)類(lèi)型是按值訪(fǎng)問(wèn)的,而引用類(lèi)型的值是按引用訪(fǎng)問(wèn)的。
1.2 復(fù)制變量值
? ??????復(fù)制基本類(lèi)型值時(shí),會(huì)在變量對(duì)象上創(chuàng)建一個(gè)新值,然后把該值復(fù)制到為新變量分配的位置上。如下面這個(gè)例子:??
?????????var num1 = 5;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?var num2 = num1;
? ? ? ? 在此,num1 中保存的值是5。當(dāng)使用num1 的值來(lái)初始化num2 時(shí),num2 中也保存了值5。但num2中的5 與num1 中的5 是完全獨(dú)立的,該值只是num1 中5 的一個(gè)副本。此后,這兩個(gè)變量可以參與任何操作而不會(huì)相互影響。