js面試筆試題

1. Js的Typeof返回類型有那些?數組

  string;undefined;number; function;object;boolean;symbol(ES6)安全

2. null和undefined的區別?閉包

  null是Js的關鍵字,表示空值。可做爲object的一個特殊值,若是object值爲null,表示該對象不是一個有效對象。函數

  undefined不是Js的關鍵字,是一個全局變量,是Global的一個屬性。
code

  • 類型不同;typeof(null) == "object",typeOf(undefined) == "undefined"
  • 轉化爲值時不同:undefined爲NaN ,null爲0, 即Number(null)==0,Number(undefined) == NaN

  相同點:對象

  都是原始類型的值,保存在棧中變量本地內存

3. 閉包的特性,閉包解決了什麼問題?string

  閉包是一個擁有許多變量和綁定了這些變量的環境的表達式(一般是一個函數),於是這些變量也是該表達式的一部分。io

  特性function

    一、函數嵌套函數。
    二、函數內部能夠引用外部的參數和變量。
    三、參數和變量不會被垃圾回收機制回收。

  用途

    一、閉包能夠讀取函數內部變量    

    二、將函數內部變量的值始終保存在內存中

  優點

     一、保護函數內的變量安全。

     二、在內存中維持一個變量。

     三、經過保護變量的安全實現JS私有屬性和私有方法(不能被外部訪問)。

     四、避免全局變量的污染。

4. 數組方法pop() push() unshift() shift()

push()尾部添加 pop()尾部刪除
unshift()頭部添加 shift()頭部刪除 

5. 」==」和「===」的不一樣

答案:前者會自動轉換類型,再判斷是否相等後者不會自動類型轉換,直接去比較

相關文章
相關標籤/搜索