全面了解JavaScript的數(shù)據(jù)類型轉(zhuǎn)換
首先,由于JavaScript是弱類型語言(弱類型的語言的東西沒有明顯的類型,他能隨著環(huán)境的不同,自動變換類型而強類型則沒這樣的規(guī)定,不同類型間的操作有嚴(yán)格定義,只有相同類型的變量才能操作,雖然系統(tǒng)也有一定的默認(rèn)轉(zhuǎn)換,當(dāng)絕沒有弱類型那么隨便,也就是說變量在聲明時不需要指定數(shù)據(jù)類型,變量由賦值操作確定數(shù)據(jù)類型),所以在JavaScript的類型轉(zhuǎn)換中就存在了強類型語言所沒有的隱式轉(zhuǎn)換。
1.1 JavaScript中的隱式轉(zhuǎn)換(自動類型轉(zhuǎn)換)
簡單定義: 不同數(shù)據(jù)類型的數(shù)據(jù)在做運算的時候可以進(jìn)行默認(rèn)的數(shù)據(jù)類型的轉(zhuǎn)換。
隱式轉(zhuǎn)換通常遵循以下幾點規(guī)則:
1.數(shù)字+字符串:數(shù)字轉(zhuǎn)換為字符串。
var n1=12;//number類型 var n2="12";//string類型 console.log(n1+n2);//結(jié)果為string類型的"1212"
2.數(shù)字+布爾值:true轉(zhuǎn)換為1,false轉(zhuǎn)換為0。
var n1=12;//number類型 var n2=true;//布爾類型 console.log(n1+n2)//結(jié)果為13
3.字符串+布爾值:布爾值轉(zhuǎn)換為true或者false。
var n1="Hello";//string類型 var n2=true; console.log(n1+n2);//結(jié)果為string類型的"Hellotrue"
4.布爾值+布爾值
var n1=true; var n2=true; console.log(n1+n2);//運行結(jié)果為2;
對于上面的案例得到的結(jié)果,不確信輸出類型的小伙伴可以通過typeof()方法來查看變量的當(dāng)前類型。
console.log(typeof(11));//number console.log(typeof("11"));//string console.log(typeof(true));//boolean
1.2 數(shù)據(jù)類型轉(zhuǎn)換函數(shù)
JavaScript中有隱式轉(zhuǎn)換,相對應(yīng)的就會有顯式轉(zhuǎn)換,想要進(jìn)行顯式轉(zhuǎn)換就需要用到下面的幾個函數(shù):
1. toString()
---->轉(zhuǎn)換為字符串,在JavaScript中所有數(shù)據(jù)類型都可以轉(zhuǎn)換為string類型
var n1="12"; var n2=true; var n11=toString(n1); var n22=toString(n2); console.log(typeof(n11));//得到的結(jié)果為string console.log(typeof(n22));//得到的結(jié)果為string
2.parseInt()
---->解析出一個string或者number類型的整數(shù)部分,如果沒有可以轉(zhuǎn)換的部分,則返回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);//得到的結(jié)果為12 console.log(n22);//得到的結(jié)果為12 console.log(n33);//得到的結(jié)果為NaN
運行上面的代碼我們不難看出,變量n1 n2 n3轉(zhuǎn)換后的數(shù)據(jù)類型都是number,但是其中通過函數(shù)parseInt()得到的函數(shù)n33并不是我們認(rèn)識的number類型數(shù)值,而是為NAN,這就不難看出NaN雖然不是一個數(shù)字,但是屬于數(shù)字類型,只是不能應(yīng)用到普通數(shù)字的任何算法,是一個比較特殊的存在。(后面的博文中會有提到,再次不做贅述)
3.parseFloat()
---->解析出一個string的浮點數(shù)部分,如果沒有可以轉(zhuǎn)換的部分,則返回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);//得到的結(jié)果為12.4 console.log(n22);//得到的結(jié)果為12.4 console.log(n33);//得到的結(jié)果為NaN
通過上面的例子我們可以得出parseFloat()該函數(shù)的返回值確實是一個數(shù)字,但從幾個變量的縱向比較中我們不難看出該函數(shù)在遇到第二個小數(shù)點之后就不做轉(zhuǎn)換了,此處需特別注意。
以上這篇全面了解JavaScript的數(shù)據(jù)類型轉(zhuǎn)換就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
- JavaScript 基本數(shù)據(jù)類型轉(zhuǎn)換你了解嘛
- JavaScript數(shù)據(jù)類型轉(zhuǎn)換實例(其他類型轉(zhuǎn)字符串、數(shù)值型、布爾類型)
- JavaScript數(shù)據(jù)類型轉(zhuǎn)換詳解(推薦)
- JavaScript顯式數(shù)據(jù)類型轉(zhuǎn)換詳解
- JavaScript的數(shù)據(jù)類型轉(zhuǎn)換原則(干貨)
- javascript基本數(shù)據(jù)類型和轉(zhuǎn)換
- JavaScript中數(shù)據(jù)類型轉(zhuǎn)換總結(jié)
- 詳解Javascript數(shù)據(jù)類型的轉(zhuǎn)換規(guī)則
- JavaScript實現(xiàn)數(shù)據(jù)類型的相互轉(zhuǎn)換
- JavaScript中的數(shù)據(jù)類型轉(zhuǎn)換方法小結(jié)
- 淺談JavaScript數(shù)據(jù)類型及轉(zhuǎn)換
- Javascript基礎(chǔ)教程之?dāng)?shù)據(jù)類型轉(zhuǎn)換
- js 數(shù)據(jù)類型轉(zhuǎn)換總結(jié)筆記
- JavaScript數(shù)據(jù)類型轉(zhuǎn)換
相關(guān)文章
javascript內(nèi)置對象arguments詳解
這篇文章主要介紹了javascript內(nèi)置對象arguments,實例講解arguments是什么怎么用,需要的朋友可以參考下2014-03-03nodejs的require模塊(文件模塊/核心模塊)及路徑介紹
在nodejs中,模塊大概可以分為核心模塊和文件模塊,核心模塊是被編譯成二進(jìn)制代碼,引用的時候只需require表示符即可,文件模塊,則是指js文件、json文件或者是.node文件2013-01-01深入document.write()與HTML4.01的非成對標(biāo)簽的詳解
本篇文章對document.write()與HTML4.01的非成對標(biāo)簽進(jìn)行了詳細(xì)的分析介紹。需要的朋友參考下2013-05-05javascript 基礎(chǔ)篇3 類,回調(diào)函數(shù),內(nèi)置對象,事件處理
在js中自定義一個類跟java c++就有比較大的區(qū)別了,因為這個格式用公式表達(dá)起來比較困難,大體說一下吧2012-03-03javascript 全選與全取消功能的實現(xiàn)代碼
全選與全取消在工作過程中經(jīng)常會使用到,是因為它很方便,同時可以提高用戶體驗值,本文介紹如何使用javascript實現(xiàn)全選與全取消功能,需要了解的朋友可以參考下2012-12-12