javascript基本數(shù)據(jù)類型及類型檢測(cè)常用方法小結(jié)
本文實(shí)例講述了javascript中的基本數(shù)據(jù)類型以及類型檢測(cè)的幾種方法。分享給大家供大家參考,具體如下:
1.JS中有6種基本的數(shù)據(jù)類型,JS中的所有操作都是基于這五種基本類型得到的。
(1)Object
對(duì)象類型
(2)number
數(shù)字類型
(3)String
字符串類型
(4)null
(5)underfined
(6)boolean
布爾類型:true或者為false
I)JS中的數(shù)據(jù)類型轉(zhuǎn)換(非嚴(yán)格模式下)
“12”==12 // true 在非嚴(yán)格模式下,字符串可以向數(shù)字轉(zhuǎn)換 true==1 // true 布爾值在等號(hào)兩邊會(huì)嘗試轉(zhuǎn)換為0或者1 “1”==true //true null==underfined //true new Object()==new Object() //true NaN==NaN //false
II)JS中的數(shù)據(jù)類型轉(zhuǎn)換(非嚴(yán)格模式下)
上述中的等號(hào)均不成立
注:特別的如果為基本類型中的string或者number,在必要的情況下,可以將string或者number轉(zhuǎn)化為對(duì)象object類型,轉(zhuǎn)化不是持續(xù)的。
比如:
var x=”hello” ; alert(a.length) // 5
數(shù)據(jù)類型中的隱式轉(zhuǎn)化補(bǔ)充:
“32”+32 //轉(zhuǎn)化為string "32"-32 //轉(zhuǎn)化為number
JS中的類型檢測(cè)方法
(1)通過(guò)typeof來(lái)進(jìn)行類型檢測(cè)
我們先來(lái)看幾個(gè)例子:
typeof 100 —->number
typeof “hello” ——>string
typeof true —–> boolean
typeof Number ——>function
typeof new Object()——->object
typeof Object ——->function
typeof null ——–>object
typeof underfined ——–>underfined
總結(jié):如果右邊的是基本類型,則typeof會(huì)嘗試得到最基本的類型,比如number,string等等,如果是函數(shù)名,那么則返回function,這里Object,Number,String,等等都可以看成函數(shù)名,如果右邊是一個(gè)基本的對(duì)象,則返回object(返回的都是小寫(xiě)哦)。
注:我們發(fā)現(xiàn)typeof null,結(jié)果返回了object,這是一個(gè)很早之前的BUG,一直沿用至今
試用范圍:如果通過(guò)typeof來(lái)判斷類型,適用于判定基本類型,或者判斷是否為函數(shù)(function)。
2.instanceof
同樣舉例來(lái)說(shuō)明:
[1,2] instanceof Array ——> true
“1,2” instanceof Array ——->false
總結(jié):instanceof 會(huì)沿著原型鏈查找,如果左邊對(duì)象的原型鏈上,具有右邊的對(duì)象,那么會(huì)返回true,并且注意只用于判斷擴(kuò)展的對(duì)象類型(非number,string等)
比如:
instanceof Number —–> false
"hell" instanceof String ------>string
補(bǔ)充:instanceof的右邊必須是函數(shù),或者是構(gòu)造器,如果不是則會(huì)報(bào)錯(cuò),檢測(cè)的是左邊的對(duì)象的原型鏈上,是否有右邊函數(shù)的prototype。
3.Object.prototype.toString
通過(guò)對(duì)象原型上的toSting方法,同樣也可以判斷類型,我們來(lái)舉例子:
Object.prototype.toString.apply([]) ——>[object Object]
Object.prototype.toString.apply(function(){}) —->[object Function]
Object.prototype.toString.apply(Number) ——->[object Function]
Object.prototype.toString.apply(String) ——–>[object Function]
Object.prototype.toString.apply(null) ———–>[object Null]
Object.prototype.toString.apply(undefined)–>[object Undefined]
使用類型:原生對(duì)象和基本類型
此外還有
(4)constructor
(5)duck type等
更多關(guān)于JavaScript相關(guān)內(nèi)容可查看本站專題:《javascript面向?qū)ο笕腴T教程》、《JavaScript中json操作技巧總結(jié)》、《JavaScript切換特效與技巧總結(jié)》、《JavaScript查找算法技巧總結(jié)》、《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》
希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。
- JS中檢測(cè)數(shù)據(jù)類型的幾種方式及優(yōu)缺點(diǎn)小結(jié)
- 淺談javascript的數(shù)據(jù)類型檢測(cè)
- 關(guān)于JS數(shù)據(jù)類型檢測(cè)的多種方式總結(jié)
- js數(shù)據(jù)類型檢測(cè)總結(jié)
- JavaScript中檢測(cè)數(shù)據(jù)類型的四種方法
- 在javaScript中檢測(cè)數(shù)據(jù)類型的幾種方式小結(jié)
- JavaScript數(shù)據(jù)類型檢測(cè)代碼分享
- js學(xué)習(xí)總結(jié)_基于數(shù)據(jù)類型檢測(cè)的四種方式(必看)
- JS數(shù)組索引檢測(cè)中的數(shù)據(jù)類型問(wèn)題詳解
- js中各種數(shù)據(jù)類型檢測(cè)和判定的實(shí)戰(zhàn)示例
相關(guān)文章
javascript實(shí)現(xiàn)table單元格點(diǎn)擊展開(kāi)隱藏效果(實(shí)例代碼)
這篇文章主要介紹了javascript實(shí)現(xiàn)table單元格點(diǎn)擊展開(kāi)隱藏效果的實(shí)例代碼講解,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-04-04JavaScript使用html2canvas實(shí)現(xiàn)截取HTML并生成圖片
在前端開(kāi)發(fā)中,有時(shí)我們需要將網(wǎng)頁(yè)的一部分或整個(gè)頁(yè)面截取并保存為圖片,這在生成報(bào)告、分享內(nèi)容或保存用戶界面狀態(tài)等場(chǎng)景中非常有用,本文將介紹如何使用 JavaScript 庫(kù) html2canvas 來(lái)實(shí)現(xiàn)這一功能,并提供一個(gè)完整的示例,需要的朋友可以參考下2024-10-10在knockoutjs 上自己實(shí)現(xiàn)的flux(實(shí)例講解)
下面小編就為大家分享一篇在knockoutjs 上自己實(shí)現(xiàn)的flux方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2017-12-12javascript陷阱 一不小心你就中招了(字符運(yùn)算)
看似簡(jiǎn)單的加法運(yùn)行,卻有很多問(wèn)題,一定要注意字符與數(shù)字的運(yùn)算,注意使用js的強(qiáng)制類型轉(zhuǎn)換,否則會(huì)出現(xiàn)很多問(wèn)題。我們?cè)诰帉?xiě)js的過(guò)程中,最好通過(guò)alert逐行測(cè)試2013-11-11基于JS代碼實(shí)現(xiàn)實(shí)時(shí)顯示系統(tǒng)時(shí)間
這篇文章主要介紹了基于JS代碼實(shí)現(xiàn)實(shí)時(shí)顯示系統(tǒng)時(shí)間的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-06-06微信小程序返回上一頁(yè)刷新組件數(shù)據(jù)的示例代碼
這篇文章主要介紹了微信小程序返回上一頁(yè)刷新組件數(shù)據(jù)的相關(guān)資料,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧2024-03-03js刪除數(shù)組中某幾項(xiàng)的方法總結(jié)
在本篇文章里小編給大家分享了關(guān)于js刪除數(shù)組中某一項(xiàng)或幾項(xiàng)的幾種方法內(nèi)容,有需要的朋友們學(xué)習(xí)下。2019-01-01JS實(shí)現(xiàn)根據(jù)出生年月計(jì)算年齡
本篇文章主要是對(duì)利用JS實(shí)現(xiàn)根據(jù)出生年月計(jì)算年齡的示例代碼進(jìn)行了介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2014-01-01微信小程序使用第三方庫(kù)Underscore.js步驟詳解
大家都知道Underscore.js是一個(gè) JavaScript 工具庫(kù),它提供了一整套函數(shù)式編程的實(shí)用功能,但是沒(méi)有擴(kuò)展任何 JavaScript 內(nèi)置對(duì)象。那么這篇文章我們就來(lái)學(xué)習(xí)下微信小程序如何使用第三方庫(kù)Underscore.js,有需要的可以參考學(xué)習(xí)。2016-09-09