1.typeof操作符
2.Undefined類型:只有一個值的數(shù)據(jù)類型坛增,這個值為null。聲明了的變量再未賦值之前薄腻,默認(rèn)這個變量的值就是undefined收捣。對于未聲明的變量,只能執(zhí)行一項操作庵楷,就是使用typeof檢測其數(shù)據(jù)類型罢艾。
3.Null類型:只有一個值的數(shù)據(jù)類型楣颠,這個值為null。表示“空對象指針”咐蚯,這也是用typeof檢測數(shù)據(jù)類型會返回“object”的原因童漩。如果有意保留對象的變量還沒有保留對象,那就應(yīng)該明確該變量先保存null值春锋。
4.Boolean類型:有兩個字面值的數(shù)據(jù)類型:true和false矫膨。他們都區(qū)分大小寫,所以True和False都是標(biāo)識符而不是字面值期奔。所有數(shù)據(jù)類型的值都有與Boolean的值等價的值豆拨,如下表所示。
數(shù)據(jù)類型 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?轉(zhuǎn)換為True的值 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 轉(zhuǎn)換為False的值
Boolean ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? true ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? false
String ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 任何非空字符串 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?**(空字符串)
Number ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 任何非零數(shù)字值(包括無窮大) ? ? ? 0和NaN
Object ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 任何對象 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?null
Undefined ? ? ? ? ? ? ? ? ? ? ? ? ? ? n/a(not applicable 不適用) ? ? ? ? ? ? undefined
5.Number類型:用于表示整數(shù)和浮點數(shù)能庆。
整數(shù)表示方式:十進(jìn)制
八進(jìn)制(以8為基數(shù)):八進(jìn)制字面值的第一位必須是0施禾,然后是八進(jìn)制數(shù)字序列(0-7)。若字面值超出范圍搁胆,前導(dǎo)零將被忽略弥搞,后面的數(shù)值將被當(dāng)作十進(jìn)制數(shù)值解析。(P27)
十六進(jìn)制(以16為基數(shù)):第一位必須是ox后跟任何十六進(jìn)制數(shù)(0-9和A-F)字母大寫小寫都可以渠旁。
1).浮點數(shù)值:
①數(shù)值必須要有小數(shù)點攀例,而且小數(shù)點之后至少要有1位數(shù)字,小數(shù)點前面可以沒有整數(shù)顾腊,但是一般不推薦粤铭。
②因為保存浮點數(shù)需要的內(nèi)存空間是保存整數(shù)的兩倍,所以ECMAScript會盡量將小數(shù)轉(zhuǎn)換為整數(shù)杂靶。
③極大或者極小的數(shù)值度可以用科學(xué)計數(shù)法(e表示法)表示梆惯,浮點數(shù)最高精度為17位小數(shù)。
2).浮點數(shù)的數(shù)值范圍:能夠表示的最小數(shù)值是:5e-324吗垮,最大數(shù)值是:1.7976931348623157e+308垛吗。超過范圍的話就會轉(zhuǎn)換為+Infinity(正無窮),Infinity(負(fù)無窮)烁登,想要確定一個數(shù)值是否在數(shù)值范圍之內(nèi)可以用函數(shù)isFinite()確定怯屉,若在范圍之內(nèi)則會返回true。
3).NaN (not a number):非數(shù)值是一個特殊的數(shù)值饵沧,用于表示一個本來要返回數(shù)值的操作數(shù) ?未返回值的情況锨络,它有兩個特點:①任何涉及NaN的操作都會返回NaN(NaN/10),在多步計算可能會導(dǎo)致問題狼牺,②NaN不等于任何數(shù)羡儿,連自身都不相等。isNaN()函數(shù)用于轉(zhuǎn)換可以轉(zhuǎn)換為數(shù)值的數(shù)據(jù)锁右,若不能轉(zhuǎn)換為數(shù)值失受,函數(shù)返回true讶泰。
4).數(shù)值轉(zhuǎn)換
(1)Number():轉(zhuǎn)型函數(shù)咏瑟,可用于任何數(shù)據(jù)類型拂到。
①若是Boolean類型的值true和false,則分別轉(zhuǎn)換成1和0码泞。
②若是數(shù)字則是簡單的傳入返回兄旬。
③若是undefined,則返回NaN余寥。
④若是字符串:如果字符串都是數(shù)字领铐,則直接轉(zhuǎn)換成十進(jìn)制數(shù)字,前導(dǎo)零會被忽略宋舷。如果是浮點數(shù)格式則轉(zhuǎn)換成相應(yīng)的浮點數(shù)值绪撵,當(dāng)然前導(dǎo)零也會被忽略掉。如果字符串為空祝蝠,則轉(zhuǎn)換為0音诈。如果字符串是上述格式之外的其他數(shù)值,則返回NaN绎狭。
⑤如果是對象Object细溅,則調(diào)用對象的valueOf()方法確定該方法返回的值是否可以轉(zhuǎn)換成數(shù)值,如果轉(zhuǎn)換的值是NaN儡嘶,則調(diào)用對象的toString()方法喇聊,按照轉(zhuǎn)換規(guī)則返回字符串值。
(2)parseInt():先會忽略字符串前面的空格蹦狂,直到遇到非空格字符誓篱。
如果第一個字符不是數(shù)字或者負(fù)號則返回NaN,若為空字符串也會返回NaN凯楔。
如果第一個字符是數(shù)字字符就接著解析第二個字符直到遇到一個非數(shù)字字符燕鸽。
而且parseInt()能識別各種整數(shù)格式(包括十進(jìn)制,八進(jìn)制“O開頭”啼辣,十六進(jìn)制“ox開頭”)啊研。
進(jìn)制轉(zhuǎn)換上因為不同版本的ECMAScript中的轉(zhuǎn)換方式不一樣,所以就在字符串后面指定第二個參數(shù)鸥拧。例如:var num=parseInt(“oxAF”党远,16)//175。
(3)parseFloate():類似于parseInt()富弦,但是不同的是parseFloat()始終會忽略前導(dǎo)零沟娱。解析小數(shù)的時候,只有第一個小數(shù)點有效腕柜,若出現(xiàn)第二個小數(shù)點济似,這個小數(shù)點是無效的矫废,它后面的字符串也會被忽略。
5.String類型
1).字符字面量:(\n ? 換行)砰蠢、(\t ? 制表)蓖扑、(\b ? 退格)、(\r ? 回車)台舱、(\f ? 進(jìn)紙)律杠、(\\ ? 斜杠)、(\' ? 單引號)竞惋、(\" ? 雙引號)
想要求字符串長度用length屬性柜去,如:var text="abcd";alert(text.length);
2).字符串特點:字符串一旦創(chuàng)建,他們的值就不能改變要改變某個變量的字符串首先要銷毀原來的拆宛,然后再用另外包含新值的字符串填充該變量嗓奢。(P33)銷毀字符串是在后臺發(fā)生的,所以不用手動修改浑厚。
3).轉(zhuǎn)換為字符串股耽。toString():適用于Num,Boolean瞻颂,String豺谈,Object,而Null,undefined就不行
如:var num=10;alert(num.toString(2/8/10/16));
String()使用于任何數(shù)據(jù)類型贡这,而且null返回“null”茬末,undefined返回“undefined”。
6.Object類型
一組數(shù)據(jù)和功能的集合盖矫。通過new操作符后要跟要創(chuàng)建的對象類型的名稱來創(chuàng)建丽惭。如:var o=new Object();object的屬性
①constructor,保存用于創(chuàng)建當(dāng)前對象的函數(shù)辈双。
②hasOwnProperty:用于檢查給定屬性在當(dāng)前對象實例中是否存在责掏。
③isPrototypeOf(Object):用于檢查傳入對象是否是當(dāng)前對象的原型。
④propertyIsEnumerable:
⑤toLocaleString():返回對象的字符串表示湃望。
⑥toString():返回對象的字符串表示换衬。
⑦valueOf():返回對象的字符串,數(shù)值证芭,布爾值表示瞳浦。通常與toString()方法的返回值相同。