首頁 >web前端 >前端問答 >javascript的typeof可傳回哪些資料類型

javascript的typeof可傳回哪些資料類型

青灯夜游
青灯夜游原創
2021-12-08 16:58:3512961瀏覽

在javascript中,typeof運算子可傳回的資料型別有:「undefined」、「object」、「boolean」、「number」、「string」、「symbol」、「function」等。

javascript的typeof可傳回哪些資料類型

本教學操作環境:windows7系統、javascript1.8.5版、Dell G3電腦。

使用 typeof 運算子可以傳回變數的資料型別。

我們來看看各個資料型態對應typeof的值:

#Undefined「undefined」#Null「object」#布林值「boolean」數值「number」「string」「symbol」Implementation-dependent「function」
#資料型態 結果
##字符字串
Symbol (ECMAScript 6 新增)
宿主物件(JS環境提供的,例如瀏覽器)
函數物件

##任何其他物件「object」
// Numbers
typeof 37 === 'number';
typeof 3.14 === 'number';
typeof Math.LN2 === 'number';
typeof Infinity === 'number';
typeof NaN === 'number'; // 尽管NaN是"Not-A-Number"的缩写,意思是"不是一个数字"
typeof Number(1) === 'number'; // 不要这样使用!

// Strings
typeof "" === 'string';
typeof "bla" === 'string';
typeof (typeof 1) === 'string'; // typeof返回的肯定是一个字符串
typeof String("abc") === 'string'; // 不要这样使用!

// Booleans
typeof true === 'boolean';
typeof false === 'boolean';
typeof Boolean(true) === 'boolean'; // 不要这样使用!

// Symbols
typeof Symbol() === 'symbol';
typeof Symbol('foo') === 'symbol';
typeof Symbol.iterator === 'symbol';

// Undefined
typeof undefined === 'undefined';
typeof blabla === 'undefined'; // 一个未定义的变量,或者一个定义了却未赋初值的变量

// Objects
typeof {a:1} === 'object';

// 使用Array.isArray或者Object.prototype.toString.call方法可以从基本的对象中区分出数组类型
typeof [1, 2, 4] === 'object';

typeof new Date() === 'object';

// 下面的容易令人迷惑,不要这样使用!
typeof new Boolean(true) === 'object';
typeof new Number(1) ==== 'object';
typeof new String("abc") === 'object';

// 函数
typeof function(){} === 'function';
typeof Math.sin === 'function';
Object.prototype.toString方法來進一步判斷資料型別。 # toString「foo」new String(“foo”)new Number(1.2)truenew Boolean(true )#new Date()#new Error()new Array(1, 2, 3)
#再看看具體的實例:我們會發現一個問題,就是typeof來判斷資料型態其實並不準確。例如數組、正規、日期、物件的typeof回傳值都是object,這就會造成一些誤差。 所以在typeof判斷類型的基礎上,我們還需要利用
我們來看看在相同資料類型的情況下,toString方法和typeof方法傳回值的差異: ##資料
typeof
String string
String object
Number object
Boolean boolean
Boolean object
Date object
Error object
Array

object

/abc/gRegExp

object########### #new RegExp(“meow”)######RegExp######object###############可以看到利用toString方法可以正確區分出Array、Error 、RegExp、Date等類型。 ######所以我們一般透過這個方法來進行資料類型的驗證。 ######【相關推薦:###javascript學習教學######】#######

以上是javascript的typeof可傳回哪些資料類型的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn