全面了解JavaScript的數(shù)據(jù)類型轉換
首先,由于JavaScript是弱類型語言(弱類型的語言的東西沒有明顯的類型,他能隨著環(huán)境的不同,自動變換類型而強類型則沒這樣的規(guī)定,不同類型間的操作有嚴格定義,只有相同類型的變量才能操作,雖然系統(tǒng)也有一定的默認轉換,當絕沒有弱類型那么隨便,也就是說變量在聲明時不需要指定數(shù)據(jù)類型,變量由賦值操作確定數(shù)據(jù)類型),所以在JavaScript的類型轉換中就存在了強類型語言所沒有的隱式轉換。
1.1 JavaScript中的隱式轉換(自動類型轉換)
簡單定義: 不同數(shù)據(jù)類型的數(shù)據(jù)在做運算的時候可以進行默認的數(shù)據(jù)類型的轉換。
隱式轉換通常遵循以下幾點規(guī)則:
1.數(shù)字+字符串:數(shù)字轉換為字符串。
var n1=12;//number類型 var n2="12";//string類型 console.log(n1+n2);//結果為string類型的"1212"
2.數(shù)字+布爾值: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 數(shù)據(jù)類型轉換函數(shù)
JavaScript中有隱式轉換,相對應的就會有顯式轉換,想要進行顯式轉換就需要用到下面的幾個函數(shù):
1. toString()
---->轉換為字符串,在JavaScript中所有數(shù)據(jù)類型都可以轉換為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類型的整數(shù)部分,如果沒有可以轉換的部分,則返回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轉換后的數(shù)據(jù)類型都是number,但是其中通過函數(shù)parseInt()得到的函數(shù)n33并不是我們認識的number類型數(shù)值,而是為NAN,這就不難看出NaN雖然不是一個數(shù)字,但是屬于數(shù)字類型,只是不能應用到普通數(shù)字的任何算法,是一個比較特殊的存在。(后面的博文中會有提到,再次不做贅述)
3.parseFloat()
---->解析出一個string的浮點數(shù)部分,如果沒有可以轉換的部分,則返回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()該函數(shù)的返回值確實是一個數(shù)字,但從幾個變量的縱向比較中我們不難看出該函數(shù)在遇到第二個小數(shù)點之后就不做轉換了,此處需特別注意。
以上這篇全面了解JavaScript的數(shù)據(jù)類型轉換就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
- JavaScript 基本數(shù)據(jù)類型轉換你了解嘛
- JavaScript數(shù)據(jù)類型轉換實例(其他類型轉字符串、數(shù)值型、布爾類型)
- JavaScript數(shù)據(jù)類型轉換詳解(推薦)
- JavaScript顯式數(shù)據(jù)類型轉換詳解
- JavaScript的數(shù)據(jù)類型轉換原則(干貨)
- javascript基本數(shù)據(jù)類型和轉換
- JavaScript中數(shù)據(jù)類型轉換總結
- 詳解Javascript數(shù)據(jù)類型的轉換規(guī)則
- JavaScript實現(xiàn)數(shù)據(jù)類型的相互轉換
- JavaScript中的數(shù)據(jù)類型轉換方法小結
- 淺談JavaScript數(shù)據(jù)類型及轉換
- Javascript基礎教程之數(shù)據(jù)類型轉換
- js 數(shù)據(jù)類型轉換總結筆記
- JavaScript數(shù)據(jù)類型轉換
相關文章
使用RequireJS優(yōu)化JavaScript引用代碼的方法
這篇文章主要介紹了使用RequireJS優(yōu)化JavaScript引用代碼的方法,RequireJS是一款人氣JS庫,需要的朋友可以參考下2015-07-07
淺談JavaScript function函數(shù)種類
這篇文章主要介紹了JavaScript function函數(shù)種類,包括普通函數(shù)、匿名函數(shù)、閉包函數(shù)、十分的全面,并附上了示例,這里推薦給大家,希望對大家能有所幫助。2014-12-12
全面了解JavaScirpt 的垃圾(garbage collection)回收機制
下面小編就為大家?guī)硪黄媪私釰avaScirpt 的垃圾(garbage collection)回收機制。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-07-07

