js 判斷數(shù)據類型之typeof

typeof [ ( ] expression [ ) ] ; // expression 參數(shù)是需要查找類型信息的任意表達式。 typeof 語法中的圓括號是可選項蛤肌。
typeof 運算符返回一個用來表示表達式的數(shù)據類型的字符串。即: typeof 運算符把類型信息當作字符串返回可能的字符串有六種:"string"瘤礁、"number"阳懂、"boolean"、"object"希太、"function" 和 "undefined"酝蜒。
如:
alert(typeof (123));//typeof(123)返回"number"
alert(typeof ("123"));//typeof("123")返回"string"

我們可以使用typeof來獲取一個變量是否存在
如 : if(typeof a!="undefined"){}誊辉,而不要去使用if(a)因為如果a不存在(未聲明)則會出錯
運算數(shù)為數(shù)字 typeof(x) = “number”
字符串 typeof(x) = “string”
布爾值 typeof(x) = “boolean”
對象,數(shù)組和null typeof(x) = “object”
函數(shù) typeof(x) = “function”
對于Array,Null等特殊對象使用typeof一律返回object,這正是typeof的局限性亡脑。
使用typeof操作符
對一個值使用typeof操作符可能返回下列某個字符串:
1):undefined——如果這個值未定義
2):boolean——如果這個值是布爾值
3):string——如果這個值是字符串
4):number——如果這個值是數(shù)值
5):object——如果這個值是對象或null
6):function——如果這個值是函數(shù)

值得注意的是:typeof是操作符而不是函數(shù)堕澄,因此圓括號盡管可以使用,但不是必須的
為了區(qū)分對象的類型邀跃,我們用typeof操作符獲取對象的類型蛙紫,它總是返回一個字符串:

typeof 123; // 'number'
typeof NaN; // 'number'
typeof 'str'; // 'string'
typeof true; // 'boolean'
typeof undefined; // 'undefined'
typeof Math.abs; // 'function'
typeof null; // 'object'
typeof []; // 'object'
typeof {}; // 'object'

可見,number坑傅、string、boolean蒜茴、function和undefined
有別于其他類型浆西。
特別注意null的類型是object粉私,Array的類型也是object近零,如果我們用typeof將無法區(qū)分出null、Array和通常意義上的object——{}

判斷Array 要使用Array.isArray(arr)久信;
判斷null請使用myVar === null;
判斷某個全局變量是否存在用typeof window.myVar=== 'undefined'陈瘦;
函數(shù)內部判斷某個變量是否存在用typeof myVar === 'undefined'潮售。

instanceof

如果我們希望獲取一個對象是否是數(shù)組锅风,或判斷某個變量是否是某個對象的實例則要選擇使用instanceof。instanceof用于判斷一個變量是否某個對象的實例:
如var a=new Array();
alert(a instanceof Array); // 會返回true
同時alert(a instanceof Object); // 也會返回true; 這是因為Array是object的子類皱埠。

再如:
function test(){};
var a=new test();
alert(a instanceof test) ; // 會返回true。

友情提示
a instanceof Object 得到true并不是因為 Array是Object的子對象训枢,而是因為 Array的prototype屬性構造于Object忘巧,Array的父級是Function

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市砚嘴,隨后出現(xiàn)的幾起案子涩拙,更是在濱河造成了極大的恐慌耸采,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,914評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件搓彻,死亡現(xiàn)場離奇詭異嘱朽,居然都是意外死亡,警方通過查閱死者的電腦和手機燥翅,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評論 2 383
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來靶端,“玉大人凛膏,你說我怎么就攤上這事杨名〔粒” “怎么了?”我有些...
    開封第一講書人閱讀 156,531評論 0 345
  • 文/不壞的土叔 我叫張陵趁蕊,是天一觀的道長仔役。 經常有香客問我,道長又兵,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,309評論 1 282
  • 正文 為了忘掉前任宙地,我火速辦了婚禮逆皮,結果婚禮上,老公的妹妹穿的比我還像新娘页屠。我一直安慰自己蓖柔,他們只是感情好风纠,可當我...
    茶點故事閱讀 65,381評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著镐捧,像睡著了一般臭增。 火紅的嫁衣襯著肌膚如雪懂酱。 梳的紋絲不亂的頭發(fā)上誊抛,一...
    開封第一講書人閱讀 49,730評論 1 289
  • 那天拗窃,我揣著相機與錄音瞎领,去河邊找鬼随夸。 笑死,一個胖子當著我的面吹牛宾毒,可吹牛的內容都是我干的。 我是一名探鬼主播乙各,決...
    沈念sama閱讀 38,882評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼幢竹,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了妨退?” 一聲冷哼從身側響起蜕企,我...
    開封第一講書人閱讀 37,643評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎幸乒,沒想到半個月后唇牧,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體聚唐,經...
    沈念sama閱讀 44,095評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡腔召,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,448評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了亲桦。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,566評論 1 339
  • 序言:一個原本活蹦亂跳的男人離奇死亡客峭,死狀恐怖抡柿,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情洲劣,我是刑警寧澤,帶...
    沈念sama閱讀 34,253評論 4 328
  • 正文 年R本政府宣布星著,位于F島的核電站粗悯,受9級特大地震影響虚循,放射性物質發(fā)生泄漏样傍。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,829評論 3 312
  • 文/蒙蒙 一茎刚、第九天 我趴在偏房一處隱蔽的房頂上張望撤逢。 院中可真熱鬧,春花似錦蚊荣、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽腥光。三九已至,卻和暖如春武福,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背艘儒。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留觉增,地道東北人翻斟。 一個月前我還...
    沈念sama閱讀 46,248評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像访惜,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子债热,可洞房花燭夜當晚...
    茶點故事閱讀 43,440評論 2 348

推薦閱讀更多精彩內容