數(shù)據(jù)類型
1.javascript設(shè)定了5種基本類型,分別為:string投蝉、boolean裙士、number膊爪、null自阱、undefined.外加一種復(fù)雜數(shù)據(jù)類型:object
2.用typeof檢測某一個值屬于那種基本類型,在此之中米酬,有一個特殊的結(jié)果為:function.
typeof(string類型); string(注:僅限于string字面量沛豌,而非 var string=new String())
typeof(null); object (null為設(shè)置一個空對象而存在,于是其typeof為object)
typeof(undefined);undefined(所有未定義或者定義了但是沒有初始化的數(shù)據(jù)都會被設(shè)置一個特殊的值—undefined)
typeof(boolean);boolean
typeof(number);number
typeof(function);function(function作為一個特殊的object存在赃额,于是有必要將其區(qū)別出來)
各種數(shù)據(jù)類型分析
-
undefined
上面已經(jīng)提到
-
null
null為一個空對象指針加派,如果需要建立一個變量用來存儲一個對象,那么在初 始化時用var obj = null爬早,這樣在判斷這個值是只用if(obj != null)
-
boolean
3.1該類型會有兩個值:true哼丈、false.
3.2各種類型值轉(zhuǎn)化為boolean類型時:string(任何非空字符都會轉(zhuǎn)化為true,空字符轉(zhuǎn)化為false) number(任何非0數(shù)字都會轉(zhuǎn)化為true,包括無窮大筛严。0會轉(zhuǎn)化為false) null(始終為false) undefined(始終為false) object(除了null其他轉(zhuǎn)化為true)
-
number
4.1 NaN----- isNaN
其中有一個特殊的值NaN(表示為其值不是數(shù)值)醉旦,可以用isNaN判斷一個值是否為數(shù)值。(其判斷規(guī)則為 如果其值能夠用Number()轉(zhuǎn)化為正常數(shù)值而不是返回NaN桨啃,則返回true)
4.2 數(shù)值范圍
每個瀏覽器能夠解析的數(shù)值有一個界限车胡,可以用Number.MAX_VALUE、Number.MIN_VALUE查看照瘾。如果超出這個界限則被轉(zhuǎn)化為-Infinity匈棘、Infinity∥雒可以使用Number.NEVIGATE_INFINITY == -Infinity 主卫、Number.POSITIVE_INFINITY == Infinity
可以使用isFinity()來判斷一個數(shù)值是否位于正無窮和負(fù)無窮之間,如果是則返回true,否則返回false.
4.3 parseInt(para1,para2)
可接受2個參數(shù)鹃愤,para1為需要轉(zhuǎn)化的數(shù)值簇搅,para2為按多少進(jìn)制轉(zhuǎn)化。
空字符串會被轉(zhuǎn)化為NaN(但是空字符串轉(zhuǎn)化為number類型時是轉(zhuǎn)化為0)
parseInt轉(zhuǎn)化字符串時软吐,會從第一個非空格字符開始查找瘩将,如果第一個字符不是數(shù)字或者負(fù)號,則會返回NaN凹耙。如果第一個是數(shù)字字符姿现,會接著解析第二個,直到遇到一個非數(shù)字字符包括小數(shù)點(diǎn)肖抱。(parseInt可以識別各種整數(shù)格式备典,即如果遇到‘0x’后面跟數(shù)字字符則會解析為16進(jìn)制數(shù)。如果是‘0‘開頭后面更隨數(shù)字字符會被轉(zhuǎn)化為8進(jìn)制數(shù))
4.4 parseFloat(para)
parseFloat()會忽略數(shù)字字符之前的0于是其不能識別8進(jìn)制16進(jìn)制虐沥。parseFloat()只會解析到第一個小數(shù)點(diǎn)熊经,如果有2個小數(shù)點(diǎn)則會在第二個小數(shù)點(diǎn)處截?cái)嘣笏摇H绻鹥ara是一個整數(shù)則會返回整數(shù)
4.5各種類型值轉(zhuǎn)化為Number類型時:
undefined轉(zhuǎn)化為NaN
null轉(zhuǎn)化為0
Boolean的true轉(zhuǎn)化為1欲险,false轉(zhuǎn)化為0
Object轉(zhuǎn)化為NaN
Sting:空字符串會轉(zhuǎn)化為0,只包含數(shù)字的字符串轉(zhuǎn)化為對應(yīng)數(shù)字镐依,但是會忽略8進(jìn)制數(shù).'0xf'會被轉(zhuǎn)化了其對應(yīng)的10進(jìn)制數(shù)。結(jié)果只可能是10進(jìn)制天试。
Number('222bbb')==NaN但是parseInt('222bbb')==222
-
string
5.1各種類型的值轉(zhuǎn)化為string類型
string會先調(diào)用該值對應(yīng)的toString方法得到結(jié)果槐壳,但是null、undefined沒有toSting方法喜每。對于Number類型toString()可接受一個參數(shù)务唐,表示按照什么基數(shù)轉(zhuǎn)化
null轉(zhuǎn)化為'null'
undefined轉(zhuǎn)化為'undefined'
number轉(zhuǎn)化為10進(jìn)制對應(yīng)的值
boolean會轉(zhuǎn)化為'true'、'false'