標籤:
一 資料類型
1 js中的資料類型
1.1 資料類型列舉
1)number類型
2)boolean類型
3)string類型
4)物件類型
5)函數類型
6)undefined類型
1.2 資料類型擷取
typeof :注意這個並不是一個函數,而是一個操作符,怎麼使用? typeof ‘asd‘ 結果:string
2 各種類型詳解
2.1 number類型
2.1.1概念理解:即所有實數,包括整型,浮點型,這個很好理解,但是有個特例
2.1.2特殊NaN:NaN本身是一個number類型,但是並不知道它的值是多少,NaN常常是由於類型轉換或者函數傳回值,比如將字串‘aa‘轉換為number自然不知道轉換後他該是什麼值只好使用NaN表示
NaN有多特殊,
(1)NaN自己都不等自己,NaN==NaN:結構為false,你說特殊不
(2)判斷一個變數是不是NaN還只能使用isNaN()函數來判斷,這裡對於一個變數是不是NaN,在isNaN()函數使用中,其實如果變數不是number則先轉換為number,對於哪些轉換為NaN的自然就是true,你說特殊不呢,那麼怎麼轉換,轉換規則呢?
A boolean true直接為1 false為0
B string 則按照第一個字元進行如果第一個失敗則直接返回NaN
C parseInt(),parseFloat()分別針對不同特殊情況轉換
D 對象則先調用對象的ValueOf()傳回值進行轉換
E undefined,null直接轉化為NaN
2.1.3 Number範圍,Number.MAX_Value,Number.Min_Value,如何判斷一個數值處於最大和最小值之間使用isFinite()函數判斷,
對於處於無窮大或者無窮小則使用Infinity表示如果為負無窮則在前面加負號‘-’
2.2 boolean類型
只有true false兩個值,對於js區分大小寫來說TRUE和FALSE並不劃等號
2.2.1 類型轉換
1)number類型大於0則轉換為true,反之false
2)string計算string.length屬性長度,大於0則為true反之false
3)對象非空,即為true反之false
4)undefined,NaN均為false
2.3 string類型
2.3.1 轉換為字串
1)使用toString()方法,但是有2個特殊對於變數類型已知情況下是沒有這個方法,就是null和undefined,比如var r=null,r.沒有toString()方法,對於函數或者轉換在操作後並不知道傳回值是什麼類型情況下可以使用toString()方法,比如
function convert(){return null};var rs=convert(); rs.toString()結果為null
2)boolean轉化為字串,true結果為‘true‘,相應的false為‘false’
2.4 function類型
函數即對象
2.5 物件類型
js中對象是一組變數和函數的組合,所以物件類型實際上是簡單類型的組合。相應的轉換在前面也已經提到
二 類型轉換
在上面資料類型轉換中也基本提到類型轉換規則,js中這些規則比較細碎,這也是js比強型別語言如c#,java要麻煩一點的地方
三 操作符
3.1 js中操作符大致與c#和java相當,有一個特殊的操作符==和===
==:意思是比較兩個變數,先不比較兩個變數類型,而是將他們進行類型轉換為同一種類型的結果,再進行比較。這其中的轉換規則,比較多
===:又名全等操作符,意思是兩個對象首先要類型相同,再則是結果相同,如果使用===先判斷類型相同再比較結果,如果類型都不同則直接返回false,===在對象的比較中比較常見
3.2 特殊
NaN與NaN並不相等,即NaN==NaN:false
undefined與null相等,在js中的解釋是undefined繼承自null,很特殊吧,即undefine==null,結果為true
NaN==undefined結果為false
重操JS舊業第二彈:資料類型與類型轉換