5種基本數據類型:Undefined、Null、Boolean、Number和String。
1中複雜數據類型:Object函數
typeof操做符返回一個字符串,表示未經求值的操做數的類型。prototype
typeof可能的返回值:code
"undefined"——若是這個值未定義;對象
"boolean"——若是這個值是布爾值;字符串
"string"——若是這個值是字符串;string
"number"——若是這個值是數值;io
"object"——若是這個值是對象或 null;console
"function"——若是這個值是函數。function
注意事項:
typeof null 返回 object。
typeof 是一個操做符而不是函數,圓括號儘管能夠使用,但不是必需的。
//typeof str 或者 typeof(str) 都可以object
用來檢測引用類型:知道一個值是什麼類型的對象。返回true/false。
全部引用類型的值都是 Object 的實例。
若是使用 instanceof 操做符檢測基本類型的值,則該操做符始終會返回 false,由於基本類型不是對象。可是使用new關鍵字構造基本數據的包裝對象的實例時instanceof操做符也會返回true。(instanceof只適用於構造函數建立返回的複雜對象和實例。)
用instanceof檢測undefined和null是否是Object實例時,返回false。
function Person(){} function Student(){} Student.prototype = new Person(); var John = new Student(); console.log(John instanceof Student); // true console.log(John instancdof Person); // true console.log(John instancdof Object); // true var a; 用instanceof檢測undefined和null是否是Object實例時,返回false。 typeof a; //"undefined" a instanceof Object; //false var b = null; typeof b; //"object" b instanceof Object; //false