JS中的資料類型和轉換

來源:互聯網
上載者:User

標籤:沒有   tostring   2.3   ==   font   單引號   進階編程   其他   字串   

一、JS中的資料類型

        js中的資料類型可以分為五種:number 、string 、boolean、 underfine 、null。

number:數字類型 ,整型浮點型都包括。

string:字串類型,右數字字母字串以及標點符號組成,必須放在單引號或者雙引號中。

boolean:布爾類型,只有true和false兩種值。

underfine:未定義,一般指的是已經聲明,但是沒有賦值的變數,如var a;

null:Null 物件類型,var a = null,和var a=""有區別;

 

object:對象,對象就是把一些彼此相關的屬性和方法集合在一起構成的一個資料實體,在js常見的有window,document,array等。

NaN:他是表示不是數字值的特殊值,可以理解為Number的一種特殊類型,只有當在js運算中發生資料類型轉換時提示,isNaN()方法是特有的對資料進行判斷的 ,如果是數字返回false,不是數字返回true。

二、資料類型轉換

        在js中資料類型轉換一般分為兩種,即強制類型轉換和隱式類型轉換(利用js弱變數類型轉換)。

強制轉換:

        利用js提供的函數parseInt() ,parseFloat() ,Number(),Boolean()進行資料轉換,顧名思義,前兩個分別是對資料進行解析轉換,前者是整數,後者是浮點數。他們解析的原則是從前往後進行解析,盡其所能。若存在有能識別的數字就解析,如果第一位就不是數字則返回NaN.Number則是對整體進行判斷,是數字返回數字,否則NaN.Boolean()則是對是否存在和真假進行判斷進行判斷。

ParseInt():

        parseInt("123");//123

        parseInt("+123");//123

        parseInt("-123");//123

        parseInt("12.3元")//12

        parseInt("abc");//NaN

         parseInt([1,2])//1

         parseInt([1,2,4])//1

          parseInt("  ");//NaN

該方法還有基模式,可以把二進位、八進位、十六進位或其他任何進位的字串轉換成整數。基是由parseInt()方法的第二個參數指定的,所以要解析十六進位的值,對於含有前置的數則直接進行解析需如下調用:

        parseInt("AA",16);//170

        parseInt("10",2);//2

        parseInt("10",8);//8

        parseInt("10",10);//10

        //含有前置

        parseInt("0xAA")//170        

        //如果位元包含前置0,那麼最好採用基數2,不然預設以十進位解析

        parseInt("010");   //returns   10 

        parseInt("010",2);//2         parseInt("010",   8);   //returns   8          parseInt("010",   10);   //returns   10 

        parseInt(null)//NaN

ParseFloat():

        parseFloat("123");//123

        parseFloat("-123");//123

         parseFloat("+123");//123

        parseFloat("12.34");//12.34

         parseFloat("12.35元")//12.35

        parseFloat("12.23.122");//12.23

        parseFloat("av");//NaN

        parseFloat("0xAA");//0

        parseFloat("0110");//110

        parseFloat([1]);//1

        parseFloat([2,3]);//2

        parseFloat([]);//NaN

        parseFloat(null)//NaN

 

Number():

        alert(123);//123

        Number("123");//123

        Number("+123");//123

        Number("12.3");//12.3

        alert(12.3元);//false

        Number(true);//1

        Number("12.3.4");//NaN

        Number(" ");//0

        Number("abc");//NaN

        Number([]);//0

        Number([1]);//1

        Number([1,2]);//NaN

        Number(new Object());//NaN

        Number(null);//0

Boolean():他不會對引號裡面的數字進行自動進行轉換。

        Boolean(1) ;//true

        Boolean(0);//false

        Boolean("1");//true

        Boolean("0");//true

        Boolean("abc");//true

        Boolean(‘‘);//false

        Boolean(‘   ‘);//true

        Boolean([])//true

        Boolean([1])//true

        Boolean(null)//false

而String()則是傳入的所有資料類型轉換為字串。

//和toString()方法的區別是

typeof String(null)//String

typeof String(undefined)//String

 隱式類型轉換:

    隱式類型轉換和java中大不相同,在js中資料類型不嚴格,沒有浮點和整型,這裡的隱式類型轉換指的是字串和數實值型別之間的轉換,在進行字串和數字之間進行減乘除模數運算或者進行比較運算時,他會自動把字串轉換為數字。轉換數位預設方法是調用Number(),進行加法運算則是將數字看成字串進行拼接. var x = "123";

var y = 121;

alert(x+y);//"123121;

alert(x-y);//2

alert(x*y);//14883

alert(x/y);//1.016528256198346

alert(x%y);//2

alert(x>y);//true

alert(x==y);//false

alert("123a">y);//false詭異

 

js只一中弱類型的指令碼語言,文法相對與java等進階程式設計語言來說不夠嚴格,所以對於它的資料類型和之間的轉換很容易混淆,以上僅是個體會,如有錯誤,歡迎指出!

JS中的資料類型和轉換

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.