Javascript 常見問題小結

七種內置類型

number、string、boolean、undefined、null、object、symbol(ES6新增長)。javascript

基本類型和引用類型

  • 基本類型指保存在棧內存中的數據;
  • 引用類型(對象引用)指保存在堆內存中的對象,傳遞的是引用的地址;

IE8一些問題

  • indexOf 爲 ECMAScript5 新方法,IE8及如下不支持;

setTimeout

setTimeout(callback, ms)setTimeout 只接受一個函數或者變量作爲參數不接受閉包,由於閉包會自執行,最小延遲 4ms。java

undefined 與 undeclared

  • undefined 表示已在做用域中聲明但尚未賦值的變量是 undefined
  • undeclared 是尚未在做用域中聲明過的變量是 undeclaredtypeof 處理的時候返回的是undefined;

類型檢測

  • typeof 用來檢測基本類型;
  • instanceof 用來檢測是否爲數組、對象、正則;
let arr = [1, 2, 3, 4, 5];
console.log(arr instanceof Array); // true

let obj = {};
console.log(obj instanceof Object); // true

let reg = /g/;
console.log(reg instanceof RegExp); // true
複製代碼

錯誤分類

ReferenceError 引用錯誤

顧名思義,在所嵌套的做用域中遍尋不到所需的變量,引擎就會拋出 ReferenceError 即引用錯誤。就是說這是一個未聲明的變量,這個錯誤是一個很是重要的異常類型。數組

console.log(num); // Uncaught ReferenceError: Cannot access 'num' before initialization
let num = 30;
複製代碼

上面錯誤就是:未捕獲引用錯誤:沒法在初始化以前訪問變量 「num」閉包

TypeError 類型錯誤

這種錯誤表示做用域判別成功,可是進行了非法的操做。好比,對一個非函數類型的值進行函數調用,或者引用 null、undefined 類型的值中的屬性,將會拋出這類錯誤。函數

const obj = null; 
console.log(obj.name); // Uncaught TypeError: Cannot read property 'name' of null
複製代碼

上面錯誤就是:未捕獲的類型錯誤:沒法讀取空的屬性 「name」post

let onChange = 'pr';
onChange(); // Uncaught TypeError: onChange is not a function
複製代碼

上面錯誤就是:未捕獲的類型錯誤:OnChange 不是函數ui

你能夠...

下一篇:Javascript 函數的認知spa

相關文章
相關標籤/搜索