number、string、boolean、undefined、null、object、symbol
(ES6新增長)。javascript
indexOf
爲 ECMAScript5 新方法,IE8及如下不支持;setTimeout(callback, ms)
,setTimeout
只接受一個函數或者變量作爲參數不接受閉包,由於閉包會自執行,最小延遲 4ms。java
undefined
表示已在做用域中聲明但尚未賦值的變量是 undefined
;undeclared
是尚未在做用域中聲明過的變量是 undeclared
,typeof
處理的時候返回的是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 即引用錯誤。就是說這是一個未聲明的變量,這個錯誤是一個很是重要的異常類型。數組
console.log(num); // Uncaught ReferenceError: Cannot access 'num' before initialization
let num = 30;
複製代碼
上面錯誤就是:未捕獲引用錯誤:沒法在初始化以前訪問變量 「num」閉包
這種錯誤表示做用域判別成功,可是進行了非法的操做。好比,對一個非函數類型的值進行函數調用,或者引用 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