JavaScript基本數據類型

前端知識點系列三:JavaScript

持續更新……

1. JavaScript基本數據類型

  • undefined
  • null
  • boolean
  • number
  • string
  • Symbol (es6)

2. null,undefined 的區別

  • null 表示一個對象被定義了,值爲“空值”;
  • undefined 表示不存在這個值。

typeof undefined //"undefined"
undefined :是一個表示”無”的原始值或者說表示”缺少值”,就是此處應該有一個值,但是還沒有定義。當嘗試讀取時會返回 undefined;
例如變量被聲明瞭,但沒有賦值時,就等於undefined

typeof null //"object"
null : 是一個對象(空對象, 沒有任何屬性和方法);
例如作爲函數的參數,表示該函數的參數不是對象;

3. JavaScript的基本規範

  1. 不要在同一行聲明多個變量。
  2. 請使用 ===/!==來比較true/false或者數值
  3. 使用對象字面量替代new Array這種形式
  4. 不要使用全局函數。
  5. switch語句必須帶有default分支
  6. 函數不應該有時候有返回值,有時候沒有返回值。
  7. for循環必須使用大括號
  8. if語句必須使用大括號
  9. for-in循環中的變量 應該使用var關鍵字明確限定作用域,從而避免作用域污染。

4. 數據模型

  • 棧:原始數據類型(Undefined,Null,Boolean,Number、String)
  • 堆:引用數據類型(對象、數組和函數)

兩種類型的區別是:存儲位置不同

  • 原始數據類型直接存儲在棧(stack)中的簡單數據段,佔據空間小、大小固定,屬於被頻繁使用數據,所以放入棧中存儲;
  • 引用數據類型存儲在堆(heap)中的對象,佔據空間大、大小不固定,如果存儲在棧中,將會影響程序運行的性能;

引用數據類型在棧中存儲了指針,該指針指向堆中該實體的起始地址。當解釋器尋找引用值時,會首先檢索其在棧中的地址,取得地址後從堆中獲得實體。

img

stack.gif

5. 移動端如何獲取頁面寬度。

document.documentElement.clientWidth

6. 寫一個函數節流方法

throttle(method, context) {
  clearTimeout(method.id);
  method.id = setTimeout(function(){
    method.call(context);
  }, 100)
}

7. XHR對象的readyState屬性有哪些?

  • 0:未初始化。open()沒有調用
  • 1:啓動。open()被調用,send()還沒被調用
  • 2:發送。send()被調用,還未收到響應數據
  • 3:接受。正在接收響應數據
  • 4:完成。已經收到全部響應數據
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章