javascript強(qiáng)轉(zhuǎn),js強(qiáng)類(lèi)型轉(zhuǎn)換

Javascript 如何強(qiáng)制類(lèi)型轉(zhuǎn)換

netJavaScript的變量確實(shí)是沒(méi)有類(lèi)型的,就是說(shuō)你varvariable后,可以隨便的給variable賦值,不會(huì)有任何問(wèn)題??墒琴x給變量的值本身自己卻是有類(lèi)型的,比如:String、Object、Boolean和Number等等。所以JS的變量還是有類(lèi)型轉(zhuǎn)換的,當(dāng)然很多時(shí)候JS解析引擎會(huì)默認(rèn)處理很多的type convert。不過(guò)有的時(shí)候也需要我們強(qiáng)行轉(zhuǎn)換數(shù)據(jù)類(lèi)型,最常見(jiàn)的就是:''+數(shù)字+數(shù)字,這種情況來(lái)生成字符串累加。 象:''+數(shù)字+數(shù)字,這樣的語(yǔ)法真的是比較的ugly,想我們?cè)贑中使用(int)xxx和C++中int(xxx)來(lái)做類(lèi)型轉(zhuǎn)換多么的清晰明了。其實(shí)JavaScript也支持這樣的類(lèi)型轉(zhuǎn)換語(yǔ)法的,例如:scriptlanguage="javascript"varstr='100';varnum=Number(100);alert(typeof(num)+':'+num);varobj=Object(str);alert(typeof(obj)+':'+obj);varbool=Boolean(str);alert(typeof(bool)+':'+bool);varnum=100;varstr=String(num);alert(typeof(str)+':'+str);varbool=Boolean(num);alert(typeof(bool)+':'+bool);varobj=Object(num);alert(typeof(obj)+':'+obj);varbool=true;varstr=String(bool);alert(typeof(str)+':'+str);varnum=Number(bool);alert(typeof(num)+':'+num);varobj=Object(bool);alert(typeof(obj)+':'+obj);varobj={};varstr=String(obj);alert(typeof(str)+':'+str);varnum=Number(obj);alert(typeof(num)+':'+num);varbool=Boolean(obj);alert(typeof(bool)+':'+bool);/script 除了Number(obj)轉(zhuǎn)換失敗,其它強(qiáng)行轉(zhuǎn)換表達(dá)式都能取得有意義的轉(zhuǎn)換效果。 使用強(qiáng)行轉(zhuǎn)換表達(dá)式最大的好處就是可以使程序代碼變得清晰,為本身就類(lèi)型混亂的JavaScript編程減少混淆的可能。 至少我覺(jué)得類(lèi)似:varstr = String(3) + String(3); 比varstr= '' + 3 + 3; 表意更清晰。 還有默認(rèn)轉(zhuǎn)換比較混亂的地方,比如:"88"-8和"88"+8,前者的默認(rèn)轉(zhuǎn)換是把字符串轉(zhuǎn)為數(shù)字(結(jié)果80),而后者又是把數(shù)字轉(zhuǎn)為字符串(結(jié)果"888")@_@,真是亂。所以使用變量類(lèi)型強(qiáng)制轉(zhuǎn)換,就可能避免這類(lèi)默認(rèn)轉(zhuǎn)換帶來(lái)的潛在理解出錯(cuò)的問(wèn)題。

創(chuàng)新互聯(lián)公司是一家專(zhuān)業(yè)提供大觀(guān)企業(yè)網(wǎng)站建設(shè),專(zhuān)注與成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、H5技術(shù)、小程序制作等業(yè)務(wù)。10年已為大觀(guān)眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專(zhuān)業(yè)的建站公司優(yōu)惠進(jìn)行中。

Javascript怎樣做強(qiáng)制類(lèi)型轉(zhuǎn)換

parseFloat 方法

返回由字符串轉(zhuǎn)換得到的浮點(diǎn)數(shù)。

parseFloat(numString)

必選項(xiàng) numString 參數(shù)是包含浮點(diǎn)數(shù)的字符串。

--------------------------------------------------

parseInt 方法

返回由字符串轉(zhuǎn)換得到的整數(shù)。

parseInt(numString, [radix])

參數(shù)

numString

必選項(xiàng)。要轉(zhuǎn)換為數(shù)字的字符串。

radix

可選項(xiàng)。在 2 和 36 之間的表示 numString 所保存數(shù)字的進(jìn)制的值。如果沒(méi)有提供,則前綴為 '0x' 的字符串被當(dāng)作十六進(jìn)制,前綴為 '0' 的字符串被當(dāng)作八進(jìn)制。所有其它字符串都被當(dāng)作是十進(jìn)制的。

JS標(biāo)識(shí)符和強(qiáng)制轉(zhuǎn)換

js中所有的由我們定義的名字都為標(biāo)識(shí)符,例如:屬性名,變量名,方法名等

1.標(biāo)識(shí)符由字母、數(shù)字、_、$等組成

2.不能由數(shù)字開(kāi)頭

3.使用駝峰式命名,首字母小寫(xiě),后邊單詞首字母大寫(xiě)

4.標(biāo)識(shí)符不能使用關(guān)鍵字(var)和保留字

String

Number

Null

Undefined

Boolean

Object(引用數(shù)據(jù)類(lèi)型)

var a="ajkajsa";

var b='ashudhasj';

var d=123;

d=123.2374;

最大值為Number.MAX_VALUE=1.7976931348623157e+308(大于最大正值就為正無(wú)窮Infinity如果小于最小正值-Infinity)

最大值為Number.MIN_VALUE=5e-324最小的正值

NaN也為number類(lèi)型

注:在js中最好不要進(jìn)行浮點(diǎn)數(shù)的運(yùn)算,關(guān)于錢(qián)的問(wèn)題不要使用js學(xué)習(xí)

------------------------------- 怎么區(qū)別string和Number ----------------------------------------------------

js自帶函數(shù)typeof

? ? 使用方法(typeof d)---(number)(typeof a)---(string)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ----\n換行,相當(dāng)于回車(chē)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ----\t制表符,相當(dāng)于tab鍵

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ----\\相當(dāng)于一個(gè)\符號(hào)

? ? ? ? ? ? 意思就是把其他數(shù)據(jù)類(lèi)型的值強(qiáng)制轉(zhuǎn)化為string

? ? ? ? ? ? --------方式一:利用變量名.toString()方法(number和Boolean類(lèi)型可以用,Null和Undefined類(lèi)里沒(méi)有該方法)

? ? ? ? ? ? --------方式二:利用String(變量名)的方式(對(duì)于number和Boolean類(lèi)型直接調(diào)用的toString()方法,而Nul是通過(guò)null---"null",undefined同理)

? ? ? ? ? ? -------方式一:利用Number(變量名)的方式:

? ? ? ? ? ? ? ? ? ? ? ? ?? (1)如果為純數(shù)字的字符串,可以直接轉(zhuǎn)化為數(shù)字

? ? ? ? ? ? ? ? ? ? ? ? ?? (2)如果字符串中含有字母或者空格,直接轉(zhuǎn)為NaN

? ? ? ? ? ? ? ? ? ? ? ? ?? (3)如果字符串為空或者為空格,直接轉(zhuǎn)為0

? ? ? ? ? ? ? ? ? ? ? ? ?? (1)parseInt()把一個(gè)字符串轉(zhuǎn)化為整形

(parseInt將字符串中的有效整數(shù)取出來(lái),轉(zhuǎn)化為Number,從前向后)

?? (2)parseFloat()把一個(gè)字符串轉(zhuǎn)化為浮點(diǎn)數(shù)

(parseFloat將字符串中的有效整數(shù)取出來(lái),轉(zhuǎn)化為Number,從前向后)

? ? ? ? ? ? ? ? ? ? ? ? ? ? (1)如果為true,轉(zhuǎn)化為1

? ? ? ? ? ? ? ? ? ? ? ? ? ? (2)如果為false,轉(zhuǎn)化為0

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 直接將null轉(zhuǎn)換為0

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 直接將undefined轉(zhuǎn)化為NaN

--------方式一:使用Boolean(變量名)的方法進(jìn)行強(qiáng)制轉(zhuǎn)換

? ? ? ?? 除了NaN和0轉(zhuǎn)換為false,其他都為true。

除了空字符串轉(zhuǎn)化成false,其他都為true。

這兩種轉(zhuǎn)換都為false。

對(duì)象類(lèi)型都轉(zhuǎn)為true。

在js中,如果需要表示16進(jìn)制的數(shù)字,則需要以0X開(kāi)頭

如果需要表示8進(jìn)制的數(shù)字,則需要以0開(kāi)頭

如果需要表示2進(jìn)制的數(shù)字,則需要以0b開(kāi)頭,但不是所有瀏覽器支持

*/

//十六進(jìn)制

//2進(jìn)制

//八進(jìn)制

網(wǎng)頁(yè)標(biāo)題:javascript強(qiáng)轉(zhuǎn),js強(qiáng)類(lèi)型轉(zhuǎn)換
鏈接URL:http://muchs.cn/article32/phjdpc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、網(wǎng)站導(dǎo)航、建站公司、網(wǎng)站設(shè)計(jì)公司軟件開(kāi)發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司