1.背景介紹
在JavaScript中,有很多常見(jiàn)的運(yùn)算符和關(guān)鍵字,這次我們來(lái)看看其中的 in,typeof,instanceof,還有===,分別是干什么的,有什么用,和什么情況下可能會(huì)用到 。
2.知識(shí)剖析
2.1、in 運(yùn)算符


IN運(yùn)算符判斷數(shù)組

for in組合遍歷大法
2.2、typeof運(yùn)算符

可調(diào)出console進(jìn)行demo
2.3、instanceof 運(yùn)算符

instansceof最直接的用法
值得一提的是,instanceof 并不能檢測(cè) 以string或者number為數(shù)據(jù)類(lèi)型的值的對(duì)象,
關(guān)于 對(duì) instanceof 的深入理解,你可能還需要一些 構(gòu)造函數(shù) 和 原型鏈 的相關(guān)知識(shí)來(lái)支撐。
2.4、=== 運(yùn)算符

3.常見(jiàn)問(wèn)題
JS運(yùn)算符 == 和 === 之間有什么不一樣?
4.解決方案

==&===原理
5.編碼實(shí)戰(zhàn)
6.拓展思考
大家都知道js中可以使用 typeof 來(lái)判斷 變量 的 基本類(lèi)型,如:
console.log(typeof '111'); ? ? ? ? ? ? ? ?// "string"
console.log(typeof 22); ?????????????????// "number"
console.log(typeof a); ???????????????????// "undefined"
console.log(typeof undefined); ? ? ?// "undefined"
console.log(typeof []); ? ? ? ? ? ? ? ? ? ?// "object"
但是這個(gè)方法不適用于來(lái)判斷數(shù)組,console.log(typeof []); ? ?// "object"
因?yàn)椴还苁菙?shù)組還是對(duì)象,都會(huì)返回object,這就需要我們尋找其他的方法,辣么判斷數(shù)組可以用什么方法呢?

判斷數(shù)組的一些方法
7.參考文獻(xiàn)
http://blog.csdn.net/dansuwei1234/article/details/73826176
在日常編程中,你還使用過(guò)別的有意思的運(yùn)算符嗎?
ES6中還有Array.isArray(arr);這種方法也可以輕松的分辨數(shù)組和對(duì)象
NaN的數(shù)據(jù)類(lèi)型
使用typeofNaN得出值為number;其實(shí)這個(gè)有點(diǎn)奇怪,我們也討論了很久,按理說(shuō)它并不是一個(gè)數(shù)字,在編碼很少直接使用到NaN。通常都是在計(jì)算失敗時(shí),作為 Math 的某個(gè)方法的返回值出現(xiàn)的(例如:Math.sqrt(-1))或者嘗試將一個(gè)字符串解析成數(shù)字但失敗了的時(shí)候(例如:parseInt("blabla"))。只能說(shuō)它的屬性值是一個(gè)number,屬于number這個(gè)數(shù)據(jù)類(lèi)型的集合。
for in組合遍歷數(shù)組與for直接遍歷數(shù)組有什么區(qū)別
for in組合遍歷比f(wàn)or有優(yōu)勢(shì),前者不需要知道數(shù)組的長(zhǎng)度也能將數(shù)組中的元素一一遍歷出來(lái)