typeof 可用來獲取檢測變量的數據類型
語法
typeof operand
typeof(operand)
參數
operand 一個表示對象或原始值的表達式,其類型將被返回。
描述
下表總結了 typeof 可能的返回值。有關類型和原始值的更多信息,可查看
| 類型 | 結果 |
|---|---|
| Undefined | "undefined" |
| Null | "object" (見下文) |
| Boolean | "boolean" |
| Number | "number" |
| BigInt | "bigint" |
| String | "string" |
| Symbol (ECMAScript 2015 新增) | "symbol" |
| 宿主對象(由 JS 環境提供) | 取決於具體實現 |
| Function 對象 (按照 ECMA-262 規范實現 [[Call]]) | "function" |
| 其他任何對象 | "object" |
// 數值 number
console.log(typeof 37);
console.log(typeof 3.14);
console.log(typeof(42));
console.log(typeof Math.LN2);
console.log(typeof Infinity);
console.log(typeof Number(1)); //Number()函數 會嘗試把參數解析成數值
console.log(typeof NaN); //盡管它是 "Not-A-Number" (非數值) 的縮寫
// 字符串 string
console.log(typeof '');
console.log(typeof 'bla');
console.log(typeof `template literal`);
console.log(typeof '1'); //注意內容為數字的字符串仍是字符串
console.log(typeof(typeof 1)); //總是返回一個字符串
console.log(typeof String(1)); //String() 函數把對象的值轉換為字符串 將任意值轉換為字符串,比 toString 更安全
// 布爾值 boolean
console.log(typeof true);
console.log(typeof false);
console.log(typeof Boolean(1)); //Boolean() 會基於參數是真值還是虛值進行轉換
console.log(typeof !!(1)); //兩次調用 ! (邏輯非) 操作符相當於 Boolean()
// Symbols symbols
console.log(typeof Symbol());
console.log(typeof Symbol('foo'));
console.log(typeof Symbol.iterator);
console.log("-----------------------------------------");
// Undefined undefined
console.log(typeof undefined);
console.log(typeof declaredButUndefinedVariable);
console.log(typeof undeclaredVariable);
// 對象 object
console.log(typeof {
a: 1
});
console.log(typeof [1, 2, 4]);
console.log(typeof new Date());
console.log(typeof /regex/); // 歷史結果請參閱正則表達式部分
console.log("-----------------------------------------");
// 函數 function
console.log(typeof
function() {});
console.log(typeof class C {});
console.log(typeof Math.sin);
null
// JavaScript 誕生以來便如此 typeof null === 'object';
使用 new 操作符
// 除 Function 外的所有構造函數的類型都是 'object'
var str = new String('String');
var num = new Number(100);
typeof str; // 返回 'object'
typeof num; // 返回 'object'
var func = new Function();
typeof func; // 返回 'function'
語法中的括號
// 括號有無將決定表達式的類型。
var iData = 99;
typeof iData + ' Wisen'; // 'number Wisen'
typeof (iData + ' Wisen'); // 'string'
