typeof返回值詳解
typeof
操作符返回一個字串
typeof
可能的返回值
型別 | 結果 |
---|---|
Undefined | undefined |
Null | object |
Boolean | boolean |
Number | number |
BigInt | bigint |
String | string |
Symbol | symbol |
Function | function |
其他任何物件 | object |
number
// 數值
typeof(42) === 'number';
typeof Math.LN2 === 'number';
typeof Infinity === 'number';
typeof NaN === 'number'; // 儘管它是 "Not-A-Number" (非數值) 的縮寫
typeof Number(1) === 'number'; // Number 會嘗試把引數解析成數值
bigint
typeof 42n === 'bigint';
string
// 字串
typeof '' === 'string';
typeof `template literal` === 'string';
typeof '1' === 'string'; // 注意內容為數字的字串仍是字串
typeof (typeof 1) === 'string'; // typeof 總是返回一個字串
typeof String(1) === 'string'; // String 將任意值轉換為字串,比 toString 更安全
bollean
// 布林值
typeof true === 'boolean';
typeof false === 'boolean';
typeof Boolean(1) === 'boolean'; // Boolean() 會基於引數是真值還是虛值進行轉換
typeof !!(1) === 'boolean'; // 兩次呼叫 ! (邏輯非) 操作符相當於 Boolean()
symbol
// Symbols
typeof Symbol() === 'symbol';
typeof Symbol('foo') === 'symbol';
typeof Symbol.iterator === 'symbol';
undefined
// Undefined
typeof undefined === 'undefined';
typeof undeclaredVariable === 'undefined';
object
typeof {a: 1} === 'object';
typeof [1, 2, 4] === 'object';
typeof new Date() === 'object';
typeof /regex/ === 'object';
typeof new Boolean(true) === 'object';
typeof new Number(1) === 'object';
typeof new String('abc') === 'object';
function
typeof function() {} === 'function';
typeof class C {} === 'function'
typeof Math.sin === 'function';
typeof console.log // 'function'
null:雖然 typeof null 會輸出 object,但是這只是 JS 存在的一個悠久 Bug。在 JS 的最初版本中使用的是 32 位系統,為了效能考慮使用低位儲存變數的型別資訊,000 開頭代表是物件然而 null 表示為全零,所以將它錯誤的判斷為 object 。
typeof null === 'object';
除 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'
es6之前typeof
總能保證對任何所給的運算元返回一個字串。即便是沒有宣告的識別符號,typeof
也能返回 'undefined'
。
es6加入了塊級作用域的 let 和 const 之後,在其被宣告之前對塊中的 let 和 const 變數使用 typeof 會丟擲一個 ReferenceError。
typeof newConstVariable; // ReferenceError
const newConstVariable = 'hello';
相關文章
- typeof返回值
- js中的typeof返回值的所有型別JS型別
- js基本資料型別與typeof返回值(圖示)JS資料型別
- typeof
- Typeof的使用
- 商品詳情 API 返回值說明API
- 淘寶/天貓商品詳情API:返回值引數詳解及商業邏輯實現API
- JavaScript typeof 運算子JavaScript
- WPF TryFindResource typeof Setter Trigger
- TypeScript 之 Typeof Type OperatorTypeScript
- instanceof和typeof的區別
- 重學javascript基礎-typeofJavaScript
- TypeScript中 typeof ArrayInstance[number] 剖析TypeScript
- JS-7 typeof 運算子JS
- 深入瞭解typeof與instanceof的使用場景及注意事項
- 好程式設計師Python培訓分享函式返回值的示例程式碼詳解程式設計師Python函式
- 攜程獲取景點詳情 API 返回值說明API
- VS 返回值被忽略的解決方法
- 深入理解typeof操作符
- JavaScript中Typeof返回的結果JavaScript
- 阿里巴巴獲得商品詳情 API 返回值說明阿里API
- 京東獲得JD商品詳情 API 返回值說明API
- 易貝獲得EBAY商品詳情 API 返回值說明API
- 拼多多根據ID取商品詳情 API 返回值說明API
- 蝦皮shopee根據ID取商品詳情 API 返回值說明API
- 蝦皮shopee獲得shopee店鋪詳情 API 返回值說明API
- Laravel 返回值Laravel
- 淺談 instanceof 和 typeof 的實現原理
- 為毛 "typeof null" 的結果為 "object" ?NullObject
- 一文搞懂js中的typeof用法JS
- 淘寶/天貓獲得淘寶商品詳情 API 返回值說明API
- 淘寶/天貓獲取sku詳細資訊 API 返回值說明API
- 詳細介紹C++多執行緒獲取返回值的方法C++執行緒
- 亞馬遜國際獲得AMAZON商品詳情 API 返回值說明亞馬遜API
- 淘寶 / 天貓獲取 sku 詳細資訊 API 返回值說明API
- vue3的computed計算屬性返回值註解Vue
- 一種處理laravel返回值響應的解決方案Laravel
- JS篇-基本型別和引用型別、typeofJS型別