最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

toString.call()通用的判斷數(shù)據(jù)類型方法示例

 更新時(shí)間:2020年08月28日 15:15:07   作者:麥樂(lè)樂(lè)  
這篇文章主要給大家介紹了關(guān)于toString.call()通用的判斷數(shù)據(jù)類型方法的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

大家都知道判斷數(shù)據(jù)類型的方法有很多。我們常用的有typeof但是,這個(gè)方法有一定的局限性。

typeof null
// "object"
 
typeof [8]
// "object"
 
typeof {}
// "object"
 
typeof function(){}
// "function"
typeof 2
//"number"
 
typeof ""
//"string"
 
typeof true
//"boolean"
 
typeof undefined
//"undefined"
 
typeof Symbol(2)
// "symbol"

typeof 無(wú)法區(qū)分null 數(shù)組和對(duì)象,通常我們會(huì)區(qū)分判斷Array和Object

有時(shí)會(huì)用instanceof 來(lái)判斷是不是一個(gè)對(duì)象的實(shí)例子

[] instanceof Array
 // true 這種方法可以判斷數(shù)組,不能區(qū)分對(duì)象
[] instanceof Object
// true
 
null instanceof Object
// false 也不能區(qū)分null

下面介紹一種方法,對(duì)每一種數(shù)據(jù)類型都實(shí)用。

toString.call(function(){})
// "[object Function]"
 
toString.call(null)
//"[object Null]"
 
toString.call([2])
"[object Array]"
 
toString.call(undefined)
//"[object Undefined]"
 
toString.call('stjd')
//"[object String]"
 
toString.call(1)
//"[object Number]"
 
toString.call(true)
//"[object Boolean]"
 
toString.call(Symbol(3))
// "[object Symbol]"
 
toString.call({q:8})
//"[object Object]"

再來(lái)思考, toString.call([2]) 意思就是改變方法中的this指向,指向傳遞進(jìn)去的參數(shù),也就是[2]。那我這樣寫不是更直觀嗎?[2].toString()。結(jié)果

[2].toString()
//"2"
  var obj = {a: 67}
  console.log(obj.toString())
  // [object Array]

對(duì)比上面兩個(gè)返回的值是不一樣的。這是因?yàn)閇2].toString()調(diào)用的是數(shù)組的toSting()方法,而不是對(duì)象的toSting()方法。Array改寫了Object的toString方法。

toSting.call()實(shí)際上就是 Object.prototype.toSting.call()

console.log(Object.prototype.toString.call([33])) // [object Array]

而[2].toSting()實(shí)際上是

console.log(Array.prototype.toString.call([2])) //2

使用的過(guò)程中,可以這樣封裝函數(shù)

  function isType(type) {
   return function(obj) {
    return {}.toString.call(obj) == "[object " + type + "]"
   }
  }
  
  var isObject = isType("Object")
  var isString = isType("String")
  var isArray = Array.isArray || isType("Array")
  var isFunction = isType("Function")
  var isUndefined = isType("Undefined")

總結(jié)

到此這篇關(guān)于toString.call()通用的判斷數(shù)據(jù)類型方法的文章就介紹到這了,更多相關(guān)toString.call()判斷數(shù)據(jù)類型內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 實(shí)例詳解JS中的事件循環(huán)機(jī)制

    實(shí)例詳解JS中的事件循環(huán)機(jī)制

    JavaScript是單線程的腳本語(yǔ)言,所以代碼在執(zhí)行的時(shí)候,只有一個(gè)主線程來(lái)執(zhí)行所有的任務(wù),同一個(gè)時(shí)間只能做同一件事情。本文就為大家詳細(xì)講解一下它的件循環(huán)機(jī)制,需要的可以參考一下
    2022-04-04
  • 微信小程序?qū)崿F(xiàn)音樂(lè)播放器

    微信小程序?qū)崿F(xiàn)音樂(lè)播放器

    這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)音樂(lè)播放器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • Javascript 區(qū)別瀏覽器 代碼

    Javascript 區(qū)別瀏覽器 代碼

    用來(lái)區(qū)別多個(gè)瀏覽器的代碼,其實(shí)在具體的使用中,一般只要區(qū)分ie跟firefox.
    2009-07-07
  • JS實(shí)現(xiàn)的簡(jiǎn)易拖放效果示例

    JS實(shí)現(xiàn)的簡(jiǎn)易拖放效果示例

    這篇文章主要介紹了JS實(shí)現(xiàn)的簡(jiǎn)易拖放效果的方法,涉及JS事件監(jiān)聽(tīng)、擴(kuò)展及頁(yè)面元素動(dòng)態(tài)操作的相關(guān)技巧,需要的朋友可以參考下
    2016-12-12
  • javascript制作loading動(dòng)畫效果 loading效果

    javascript制作loading動(dòng)畫效果 loading效果

    項(xiàng)目中多處要給ajax提交的時(shí)候增加等待動(dòng)畫效果,所以就寫了一個(gè)簡(jiǎn)單的通用js方法,大家參考使用吧
    2014-01-01
  • javascript實(shí)現(xiàn)模擬時(shí)鐘的方法

    javascript實(shí)現(xiàn)模擬時(shí)鐘的方法

    這篇文章主要介紹了javascript實(shí)現(xiàn)模擬時(shí)鐘的方法,涉及javascript操作時(shí)間實(shí)時(shí)顯示的相關(guān)技巧,需要的朋友可以參考下
    2015-05-05
  • JavaScript 和 C++實(shí)現(xiàn)雙向交互

    JavaScript 和 C++實(shí)現(xiàn)雙向交互

    本文主要介紹了在CEF中實(shí)現(xiàn)JavaScript和C++的雙向交互,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-02-02
  • js 進(jìn)度條實(shí)現(xiàn)代碼

    js 進(jìn)度條實(shí)現(xiàn)代碼

    非常簡(jiǎn)潔的進(jìn)度條實(shí)現(xiàn)代碼,一般用于一些比較耗時(shí)間的操作。
    2009-05-05
  • Javascript中innerHTML用法實(shí)例分析

    Javascript中innerHTML用法實(shí)例分析

    這篇文章主要介紹了Javascript中innerHTML用法,實(shí)例分析了實(shí)用innerHTML獲取對(duì)應(yīng)元素內(nèi)容的使用技巧,需要的朋友可以參考下
    2015-01-01
  • js刪除數(shù)組元素、清空數(shù)組的簡(jiǎn)單方法(必看)

    js刪除數(shù)組元素、清空數(shù)組的簡(jiǎn)單方法(必看)

    下面小編就為大家?guī)?lái)一篇js刪除數(shù)組元素、清空數(shù)組的簡(jiǎn)單方法(必看)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-07-07

最新評(píng)論

成安县| 襄城县| 锦屏县| 金湖县| 永新县| 淮南市| 景德镇市| 麟游县| 嫩江县| 北川| 柳江县| 高密市| 保定市| 长白| 沅陵县| 桦甸市| 拉萨市| 阿拉善左旗| 福贡县| 通许县| 万载县| 水城县| 满城县| 滨海县| 西城区| 蓝山县| 望谟县| 邯郸市| 韶山市| 贵南县| 奉贤区| 利辛县| 望谟县| 靖远县| 中西区| 彭水| 海城市| 长宁区| 烟台市| 凤凰县| 齐河县|