JavaScript知識點復習(2)

一、Null 和 Undefined的區(qū)別

Null 表示“無”的對象,轉換為數(shù)值時為0

典型用法:
a、作為函數(shù)的參數(shù),表示該函數(shù)的參數(shù)不是對象;
b、作為對象原型鏈的終點。

Undefined表示一個“無”的原始值,轉換為數(shù)值時為NaN

典型用法:
a、變量被聲明,但未賦值;
b、調用函數(shù)時,應該提供的參數(shù)沒有提供,該參數(shù)=undefined;
c、對象沒有賦值的屬性,該屬性的值=undefined;
d、函數(shù)沒有返回值,默認返回undefined。

二、Boolean

只有兩個值:true 和 false;
轉換函數(shù) Boolean() : JS 所有類型的值都有與這兩個Boolean值等價的值,具體的轉換關系見下表:

三、檢測類型

基本數(shù)據類型:

typeof操作符是確定一個變量是字符串、數(shù)值、布爾值,還是udefined的最佳工具。如果變量的值是一個對象或null,則typeof操作符會返回“object”。

引用類型:

instanceof操作符
語法:result = variable instanceof constructor

alert(person instanceof Object);//變量person是Object嗎?

如果變量是給定引用類型的實例,instanceof操作符就會返回true。(所有引用類型
的值都是Object的實例)

四、垃圾收集

JavaScript具有自動垃圾收集機制,執(zhí)行環(huán)境會負責管理代碼執(zhí)行過程中使用的內存。

1、標記清除(最常用的垃圾收集方式)

當變量進入環(huán)境時,就將這個變量標記為“進入環(huán)境”;當變量離開環(huán)境時,則將其標記為“離開環(huán)境”。從邏輯上講,永遠不能釋放進入環(huán)境的變量所占用的內存。

2、引用計數(shù)(不太常見)——跟蹤記錄每個值被引用的次數(shù)。

當某個值的引用次數(shù)變成0時,就可以將其占用的內存空間收回來。
存在一個嚴重的問題:循環(huán)引用

3、性能問題

在IE中,調用window.CollectGarbage()方法會立即執(zhí)行垃圾收集;
在Opera 7 及更高版本中,調用window.opera.collect()方法也會啟動垃圾收集歷
程。

4、管理內存

分配給Web瀏覽器的可用內存數(shù)量通常要比分配給桌面應用程序的少,防止運行JavaScript的網頁耗盡全部系統(tǒng)內存而導致系統(tǒng)崩潰;內存分配問題不僅會影響給變量分配內存,同時還會影響調用棧以及在一個線程中能夠同時執(zhí)行的語句數(shù)量。

優(yōu)化內存的最佳方式——解除引用(執(zhí)行的代碼只保存必要的數(shù)據,一旦數(shù)據不再有用,最好通過將其值設置為null來釋放其引用)。這一做法適用于大多數(shù)全局變量和全局對象的屬性,局部變量會在它們離開執(zhí)行環(huán)境時自動解除引用。

解除引用的真正作用——讓值脫離執(zhí)行環(huán)境,以便垃圾收集器下次運行時將其收回。

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

相關閱讀更多精彩內容

  • 第1章 JavaScript 簡介 JavaScript 具備與瀏覽器窗口及其內容等幾乎所有方面交互的能力。 歐洲...
    力氣強閱讀 1,292評論 0 0
  • 從三月份找實習到現(xiàn)在,面了一些公司,掛了不少,但最終還是拿到小米、百度、阿里、京東、新浪、CVTE、樂視家的研發(fā)崗...
    時芥藍閱讀 42,818評論 11 349
  • Java8張圖 11、字符串不變性 12、equals()方法、hashCode()方法的區(qū)別 13、...
    Miley_MOJIE閱讀 3,904評論 0 11
  • 一:java概述:1,JDK:Java Development Kit,java的開發(fā)和運行環(huán)境,java的開發(fā)工...
    ZaneInTheSun閱讀 2,815評論 0 11
  • Vim使用總結 前言 Vim是Linux中經常使用到的文本編輯器,之前雖然有學過過Vim的使用,不過,由于使用的頻...
    顏洛濱閱讀 355評論 0 0

友情鏈接更多精彩內容