js中如何準(zhǔn)確的判斷數(shù)據(jù)類型

第一種方式也是最常見的方式,用type of判斷:console.log(type of data)朵逝,typeof檢測基本類型是沒有問題的蔚袍,如字符串、數(shù)值配名、布爾和undefined啤咽,但是如果檢測對象或null的話都會返回‘object’;

第二種方式,用 instanceof 判斷渠脉,注意此方法后面一定是數(shù)據(jù)類型:console.log(data instanceof Array)闰蚕,通常我們并不是想知道某個值是對象,而是想知道它是什么類型的對象连舍,如上:變量data是Array類型的對象没陡?;?

注意:所有引用類型值都是object的實例,所以在檢測一個引用類型值和Object構(gòu)造函數(shù)時索赏,instanceof操作符會一直返回true盼玄。如用instanceof操作符檢測基本類型值時潜腻,會一直返回false埃儿,原因很簡單,因為基本類型不是對象融涣。

第三種方式童番,用constructor判斷:console.log(data.constructor === Array);

第四種方式,用Object.prototype.toString.call(data);此種方式可以準(zhǔn)確的判斷出數(shù)據(jù)類型威鹿。

console.log(Object.prototype.toString.call(data));

原理:

1剃斧、在JavaScript中,一切皆為對象忽你,強制將變量轉(zhuǎn)換成為字符串幼东,使它暴露出內(nèi)部的[[class]]屬性科雳。

2根蟹、首先獲取對象內(nèi)部屬性[[class]](每個對象都有屬于自己的[[class]]),然后根據(jù)這個屬性返回一個類似于"[object Number]"的字符串作為結(jié)果糟秘,? ? ([[]]用來表示語言內(nèi)部用到的简逮,外部不可直接訪問的屬性,稱之為內(nèi)部屬性尿赚。)散庶。利用此方法并且配合call方法可以取得任何對象內(nèi)部屬性的[[class]]沛婴,然后把類型檢測轉(zhuǎn)化為字符串比較,以此來判斷數(shù)據(jù)類型督赤。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末泻蚊,一起剝皮案震驚了整個濱河市躲舌,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌性雄,老刑警劉巖没卸,帶你破解...
    沈念sama閱讀 222,183評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異秒旋,居然都是意外死亡约计,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評論 3 399
  • 文/潘曉璐 我一進店門迁筛,熙熙樓的掌柜王于貴愁眉苦臉地迎上來煤蚌,“玉大人细卧,你說我怎么就攤上這事尉桩。” “怎么了贪庙?”我有些...
    開封第一講書人閱讀 168,766評論 0 361
  • 文/不壞的土叔 我叫張陵蜘犁,是天一觀的道長。 經(jīng)常有香客問我止邮,道長这橙,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,854評論 1 299
  • 正文 為了忘掉前任导披,我火速辦了婚禮屈扎,結(jié)果婚禮上撩匕,老公的妹妹穿的比我還像新娘助隧。我一直安慰自己,他們只是感情好滑沧,可當(dāng)我...
    茶點故事閱讀 68,871評論 6 398
  • 文/花漫 我一把揭開白布并村。 她就那樣靜靜地躺著,像睡著了一般滓技。 火紅的嫁衣襯著肌膚如雪哩牍。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,457評論 1 311
  • 那天令漂,我揣著相機與錄音膝昆,去河邊找鬼。 笑死荚孵,一個胖子當(dāng)著我的面吹牛妹窖,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播收叶,決...
    沈念sama閱讀 40,999評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼骄呼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了判没?” 一聲冷哼從身側(cè)響起蜓萄,我...
    開封第一講書人閱讀 39,914評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎澄峰,沒想到半個月后嫉沽,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,465評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡俏竞,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,543評論 3 342
  • 正文 我和宋清朗相戀三年绸硕,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片魂毁。...
    茶點故事閱讀 40,675評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡臣咖,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出漱牵,到底是詐尸還是另有隱情夺蛇,我是刑警寧澤,帶...
    沈念sama閱讀 36,354評論 5 351
  • 正文 年R本政府宣布酣胀,位于F島的核電站,受9級特大地震影響闻镶,放射性物質(zhì)發(fā)生泄漏甚脉。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,029評論 3 335
  • 文/蒙蒙 一铆农、第九天 我趴在偏房一處隱蔽的房頂上張望牺氨。 院中可真熱鬧,春花似錦墩剖、人聲如沸猴凹。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽郊霎。三九已至,卻和暖如春爷绘,著一層夾襖步出監(jiān)牢的瞬間书劝,已是汗流浹背进倍。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留购对,地道東北人猾昆。 一個月前我還...
    沈念sama閱讀 49,091評論 3 378
  • 正文 我出身青樓,卻偏偏與公主長得像骡苞,于是被迫代替她去往敵國和親垂蜗。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,685評論 2 360

推薦閱讀更多精彩內(nèi)容

  • 國家電網(wǎng)公司企業(yè)標(biāo)準(zhǔn)(Q/GDW)- 面向?qū)ο蟮挠秒娦畔?shù)據(jù)交換協(xié)議 - 報批稿:20170802 前言: 排版 ...
    庭說閱讀 11,007評論 6 13
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法烙如,類相關(guān)的語法毅否,內(nèi)部類的語法亚铁,繼承相關(guān)的語法,異常的語法螟加,線程的語...
    子非魚_t_閱讀 31,664評論 18 399
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理徘溢,服務(wù)發(fā)現(xiàn),斷路器捆探,智...
    卡卡羅2017閱讀 134,707評論 18 139
  • 這是《富爸爸窮爸爸》的一篇短評然爆,看官來了,就請留步黍图,往下看看可好曾雕。 這本書是所有理財達人推薦的第一本書,可見它對理...
    長呀長閱讀 269評論 0 0
  • 偶然于 杯盞交錯之際 微瞌雙目 我看見一顆露珠 從青草的葉脈里走出來 與我含笑對視 這讓我大喜過望 我的夢想于是輕...
    春箋素心閱讀 230評論 0 0