高程三第四章

ECMAScript 變量可能包含兩種不同數(shù)據(jù)類型的值:基本類型值和引用類型值?;绢愋椭抵傅氖呛唵蔚臄?shù)據(jù)段,而引用類型值指那些可能由多個值構(gòu)成的對象。基本數(shù)據(jù)類型:Undefined、Null、Boolean、Number 和 String。這 5 種基本數(shù)據(jù)類型是按值訪問的,因為可以操作保存在變量中的實際的值。引用類型的值是保存在內(nèi)存中的對象。與其他語言不同,JavaScript 不允許直接訪問內(nèi)存中的位置,也就是說不能直接操作對象的內(nèi)存空間。在操作對象時,實際上是在操作對象的引用而不是實際的對象。為此,引用類型的值是按引用訪問的。
??如果從一個變量向另一個變量復(fù)制基本類型的值,會在變量對象上創(chuàng)建一個新值,然后把該值復(fù)制到為新變量分配的位置上,即兩個變量是不同的。當(dāng)從一個變量向另一個變量復(fù)制引用類型的值時,同樣也會將存儲在變量對象中的值復(fù)制一份放到為新變量分配的空間中。不同的是,這個值的副本實際上是一個指針,而這個指針指向存儲在堆中的一個對象。復(fù)制操作結(jié)束后,兩個變量實際上將引用同一個對象。因此,改變其中一個變量,就會影響另一個變量。
??ECMAScript 中所有函數(shù)的參數(shù)都是按值傳遞的。也就是說,把函數(shù)外部的值復(fù)制給函數(shù)內(nèi)部的參數(shù),就和把值從一個變量復(fù)制到另一個變量一樣。(而不是通過引用傳遞的)
檢測基本數(shù)據(jù)類型——typeof
檢測引用類型的值(檢測是什么類型的對象)——instanceof
語法:result = variable instanceof constructor。返回true or false。

使用 typeof 操作符檢測函數(shù)時,該操作符會返回"function"。ECMA-262 規(guī)定任何在內(nèi)部實現(xiàn)[[Call]]方法的對象都應(yīng)該在應(yīng)用 typeof 操作符時返回"function"。由于上述瀏覽器中的正則表達式也實現(xiàn)了這個方法,因此對正則表達式應(yīng)用 typeof 會返回"function"。在IE 和 Firefox 中,對正則表達式應(yīng)用 typeof 會返回"object"。

??JS沒用塊級作用域但是有函數(shù)作用域。
??JavaScript 具有自動垃圾收集機制,也就是說,執(zhí)行環(huán)境會負(fù)責(zé)管理代碼執(zhí)行過程中使用的內(nèi)存。兩種方法來實現(xiàn):1.標(biāo)記清除 2.引用計數(shù)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容