JS 中 判斷數據類型 typeof詳解


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'

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM