全面瞭解JavaScript的資料類型轉換_基礎知識

來源:互聯網
上載者:User

 首先,由於JavaScript是弱類型語言(弱類型的語言的東西沒有明顯的類型,他能隨著環境的不同,自動變換類型而強型別則沒這樣的規定,不同類型間的操作有嚴格定義,只有相同類型的變數才能操作,雖然系統也有一定的預設轉換,當絕沒有弱類型那麼隨便,也就是說變數在聲明時不需要指定資料類型,變數由賦值操作確定資料類型),所以在JavaScript的類型轉換中就存在了強型別語言所沒有的隱式轉換。

1.1 JavaScript中的隱式轉換(自動類型轉換)

簡單定義: 不同資料類型的資料在做運算的時候可以進行預設的資料類型的轉換。
隱式轉換通常遵循以下幾點規則:

1.數字+字串:數字轉換為字串。

var n1=12;//number類型  var n2="12";//string類型  console.log(n1+n2);//結果為string類型的"1212"

2.數字+布爾值:true轉換為1,false轉換為0。

var n1=12;//number類型  var n2=true;//布爾類型  console.log(n1+n2)//結果為13

 3.字串+布爾值:布爾值轉換為true或者false。

var n1="Hello";//string類型  var n2=true;  console.log(n1+n2);//結果為string類型的"Hellotrue"

4.布爾值+布爾值

var n1=true;  var n2=true;  console.log(n1+n2);//運行結果為2;

對於上面的案例得到的結果,不確信輸出類型的小夥伴可以通過typeof()方法來查看變數的當前類型。

 console.log(typeof(11));//number  console.log(typeof("11"));//string  console.log(typeof(true));//boolean

1.2 資料類型轉換函式

JavaScript中有隱式轉換,相對應的就會有顯式轉換,想要進行顯式轉換就需要用到下面的幾個函數:

1. toString()

---->轉換為字串,在JavaScript中所有資料類型都可以轉換為string類型

var n1="12";  var n2=true;  var n11=toString(n1);  var n22=toString(n2);  console.log(typeof(n11));//得到的結果為string  console.log(typeof(n22));//得到的結果為string

2.parseInt()

---->解析出一個string或者number類型的整數部分,如果沒有可以轉換的部分,則返回NaN(not a number)

var n1="12";  var n2="12han";  var n3="Hello";  var n11=parseInt(n1);  var n22=parseInt(n2);  var n33=parseInt(n3);  console.log(n11);//得到的結果為12  console.log(n22);//得到的結果為12  console.log(n33);//得到的結果為NaN

運行上面的代碼我們不難看出,變數n1 n2 n3轉換後的資料類型都是number,但是其中通過函數parseInt()得到的函數n33並不是我們認識的number類型數值,而是為NAN,這就不難看出NaN雖然不是一個數字,但是屬於數字類型,只是不能應用到普通數位任何演算法,是一個比較特殊的存在。(後面的博文中會有提到,再次不做贅述)

3.parseFloat()

---->解析出一個string的浮點數部分,如果沒有可以轉換的部分,則返回NaN(not a number)。

var n1="12.4.5";  var n2="12.4han";  var n3="Hello";  var n11=parseFloat(n1);  var n22=parseFloat(n2);  var n33=parseFloat(n3);  console.log(n11);//得到的結果為12.4  console.log(n22);//得到的結果為12.4  console.log(n33);//得到的結果為NaN

通過上面的例子我們可以得出parseFloat()該函數的傳回值確實是一個數字,但從幾個變數的縱向比較中我們不難看出該函數在遇到第二個小數點之後就不做轉換了,此處需特別注意。

以上這篇全面瞭解JavaScript的資料類型轉換就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援雲棲社區。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.