一:六大數(shù)據(jù)類型:
js六大數(shù)據(jù)類型:number憔狞、string蝴悉、object、Boolean瘾敢、null拍冠、undefined
string: 由單引號或雙引號來說明尿这,如"string"
number:什么整數(shù)啊浮點數(shù)啊都叫數(shù)字
Boolean: 就是true和false啦
undefined:未定義,就是你創(chuàng)建一個變量后卻沒給它賦值~
null: 故名思久庆杜,null就是沒有射众,什么也不表示
object: 就是除了上面五種之外的類型 萬物皆對象’
二:數(shù)據(jù)類型判斷之typeof
typeof是一個一元運算,放在一個運算值之前欣福,其返回值為一個字符串责球,該字符串說明運算數(shù)的類型,所以判斷某個是否為String類型拓劝,可以直接 if(typeof(你的值) == "string"){}
null雏逾、對象、數(shù)組返回的都是object類
函數(shù)類型返回的則是function郑临,再比如typeof(Date)栖博,typeof(eval)
三:判斷數(shù)組類型之instanceof
1::::instanceof是一個三目運算式---和typeof最實質(zhì)上的區(qū)別
a instanceof b?alert("true"):alert("false")//注意b值是你想要判斷的那種數(shù)據(jù)類型,不是一個字符串厢洞,比如Array? (a ?instanceof ? ?Array)
2::Array.isArray(obj)
四:constructor
constructor 屬性返回對創(chuàng)建此對象的數(shù)組函數(shù)的引用 ?仇让,就是返回對象相對應(yīng)的構(gòu)造函數(shù)
(a.constructor == Array)? // a實例所對應(yīng)的構(gòu)造函數(shù)是否為Array? true or false
!躺翻!注意:
使用instaceof和construcor,被判斷的array必須是在當(dāng)前頁面聲明的丧叽!比如,一個頁面(父頁面)有一個框架公你,框架中引用了一個頁面(子頁面)踊淳,在子頁面中聲明了一個array,并將其賦值給父頁面的一個變量陕靠,這時判斷該變量迂尝,Array == object.constructor;會返回false;
原因:
1剪芥、array屬于引用型數(shù)據(jù)垄开,在傳遞過程中,僅僅是引用地址的傳遞税肪。
2溉躲、每個頁面的Array原生對象所引用的地址是不一樣的,在子頁面聲明的array益兄,所對應(yīng)的構(gòu)造函數(shù)锻梳,是子頁面的Array對象;父頁面來進(jìn)行判斷偏塞,使用的Array并不等于子頁面的Array唱蒸;切記,不然很難跟蹤問題灸叼!
五:propertyIsEnumerable 方法:
object. propertyIsEnumerable(proName)? ? 判斷指定的屬性是否可列舉
proName 存在于 object 中且可以使用一個 For…In 循環(huán)窮舉出來神汹,那么 propertyIsEnumerable 屬性返回 true庆捺。如果 object 不具有所指定的屬性或者所指定的屬性不是可列舉的,那么 propertyIsEnumerable 屬性返回 false屁魏。