在javascript中,typeof操作符可返回的數據類型有:“undefined”、“object”、“boolean”、“number”、“string”、“symbol”、“function”等。
本教程操作環境:windows7系統、javascript1.8.5版、Dell G3電腦。
使用 typeof
操作符可以返回變量的數據類型。
我們來看看各個數據類型對應typeof的值:
數據類型 | 結果 |
---|---|
Undefined | “undefined” |
Null | “object” |
布爾值 | “boolean” |
數值 | “number” |
字符串 | “string” |
Symbol (ECMAScript 6 新增) | “symbol” |
宿主對象(JS環境提供的,比如瀏覽器) | Implementation-dependent |
函數對象 | “function” |
任何其他對象 | “object” |
再看看具體的實例:
//Numberstypeof37==='number';typeof3.14==='number';typeofMath.LN2==='number';typeofInfinity==='number';typeofNaN==='number';//盡管NaN是"Not-A-Number"的縮寫,意思是"不是一個數字"typeofNumber(1)==='number';//不要這樣使用!//Stringstypeof""==='string';typeof"bla"==='string';typeof(typeof1)==='string';//typeof返回的肯定是一個字符串typeofString("abc")==='string';//不要這樣使用!//Booleanstypeoftrue==='boolean';typeoffalse==='boolean';typeofBoolean(true)==='boolean';//不要這樣使用!//SymbolstypeofSymbol()==='symbol';typeofSymbol('foo')==='symbol';typeofSymbol.iterator==='symbol';//Undefinedtypeofundefined==='undefined';typeofblabla==='undefined';//一個未定義的變量,或者一個定義了卻未賦初值的變量//Objectstypeof{a:1}==='object';//使用Array.isArray或者Object.prototype.toString.call方法可以從基本的對象中區分出數組類型typeof[1,2,4]==='object';typeofnewDate()==='object';//下面的容易令人迷惑,不要這樣使用!typeofnewBoolean(true)==='object';typeofnewNumber(1)===='object';typeofnewString("abc")==='object';//函數typeoffunction(){}==='function';typeofMath.sin==='function';
我們會發現一個問題,就是typeof來判斷數據類型其實并不準確。比如數組、正則、日期、對象的typeof返回值都是object,這就會造成一些誤差。
所以在typeof判斷類型的基礎上,我們還需要利用Object.prototype.toString方法來進一步判斷數據類型。
我們來看看在相同數據類型的情況下,toString方法和typeof方法返回值的區別:
數據 | toString | typeof |
---|---|---|
“foo” | String | string |
new String(“foo”) | String | object |
new Number(1.2) | Number | object |
true | Boolean | boolean |
new Boolean(true) | Boolean | object |
new Date() | Date | object |
new Error() | Error | object |
new Array(1, 2, 3) | Array | object |
/abc/g | RegExp | object |
new RegExp(“meow”) | RegExp | object |
可以看到利用toString方法可以正確區分出Array、Error、RegExp、Date等類型。
所以我們一般通過該方法來進行數據類型的驗證。
感謝你能夠認真閱讀完這篇文章,希望小編分享的“javascript的typeof可返回了什么數據類型”這篇文章對大家有幫助,同時也希望大家多多支持本站,關注本站行業資訊頻道,更多相關知識等著你來學習!
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
c語言中正確的字符常量是用一對單引號將一個字符括起表示合法的字符常量。例如‘a’。數值包括整型、浮點型。整型可用十進制,八進制,十六進制。八進制前面要加0,后面...
2022年天津專場考試原定于3月19日舉行,受疫情影響確定延期,但目前延期后的考試時間推遲。 符合報名條件的考生,須在規定時間登錄招考資訊網(www.zha...
:喜歡聽,樂意看。指很受歡迎?!巴卣官Y料”喜聞樂見:[ xǐ wén lè jiàn ]詳細解釋1. 【解釋】:喜歡聽,樂意看。指很受歡迎。2. 【示例】:這是...
6210開頭是什么銀行?農村商業銀行的銀行卡開頭一般為6210。農村商業銀行,簡稱:農商銀行,是由轄內農民、農村工商戶、企業法人和其他經濟組織共同入股組成的股份制的地方性金融機構。6210開頭是農村商業銀行,前身是農村信用社,如果是以6210開頭13-16位數的話一般是農商行信用卡,如果是以6210開頭的19位數的話一般是儲蓄卡。農村商業銀行轉賬多久能到賬?資金的到賬時間一般情況下,在進行銀行轉賬...
淘寶理財是什么?淘寶理財是淘寶旗下的一款互聯網理財產品,旨在為用戶提供高收益、低風險的投資選擇。通過與各大銀行、基金公司等合作,淘寶理財推出了多種理財產品,包括余額寶、基金定投、銀行存款等。淘寶理財產品介紹1. 余額寶:余額寶是淘寶理財的核心產品,是一種貨幣基金,用戶可以將自己的閑置資金存入余額寶中,享受高于銀行定期存款利率的收益。2. 基金定投:淘寶理財與多家基金公司合作,推出了多種基金定投產品...
ene指標是什么意思?接下來就來為大家介紹一下,一起來看看吧。ene指標又被稱為軌道線,在兩條平行的阻力線和支排線之間形成的范圍叫做趨勢軌道,根據這一軌道形成的上下線叫做軌道線。軌道線在確立之后,投資者可以判斷股價運行過程中的方向。計算公式1、LOWER=(1-M2/100)*收盤價的N日簡單移動平均2、UPPER=(1 M1/100)*收盤價的N日簡單移動平均ene軌道線看1、ENE緩慢向下運行...