您好,登錄后才能下訂單哦!
小編給大家分享一下javascript進(jìn)行類(lèi)型強(qiáng)制轉(zhuǎn)換的方法,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
強(qiáng)制轉(zhuǎn)換方法:1、使用String()、Number()或toString()函數(shù)進(jìn)行字符串與數(shù)字之間的顯示類(lèi)型轉(zhuǎn)換;2、使用Boolean()函數(shù)將值轉(zhuǎn)換為布爾值;3、使用“+”、“-”運(yùn)算符進(jìn)行字符串和數(shù)字之間的隱式類(lèi)型轉(zhuǎn)換。
本教程操作環(huán)境:windows7系統(tǒng)、javascript1.8.5版、Dell G3電腦。
字符串和數(shù)字之間的轉(zhuǎn)換是通過(guò) String(..) 和 Number(..) 這兩個(gè)內(nèi)建函數(shù)。
除了 String(..) 和 Number(..) 以外,還有其他方法可以實(shí)現(xiàn)字符串和數(shù)字之間的顯式 轉(zhuǎn)換:
let a = 42; let b = a.toString(); let c = "3.14"; let d = +c; b; // "42" d; // 3.14
a.toString() 是顯式的,不過(guò)其中涉及隱式轉(zhuǎn)換。因?yàn)?toString() 對(duì) 42 這樣的基本類(lèi)型值不適用,所以 JavaScript 引擎會(huì)自動(dòng)為 42 創(chuàng)建一個(gè)封裝對(duì)象,然后對(duì)該對(duì)象調(diào)用 toString()。這里顯式轉(zhuǎn)換中含有隱式轉(zhuǎn)換。
let a = "0"; let b = []; let c = {}; let d = ""; let e = 0; let f = null; let g; Boolean( a ); // true Boolean( b ); // true Boolean( c ); // true Boolean( d ); // false Boolean( e ); // false Boolean( f ); // false Boolean( g ); // false
雖然 Boolean(..) 是顯式的,但并不常用。顯式強(qiáng)制類(lèi)型轉(zhuǎn)換為布爾值最常用的方法是 !!
let a = "0"; let b = []; let c = {}; let d = ""; let e = 0; let f = null; let g; !!a; // true !!b; // true !!c; // true !!d; // false !!e; // false !!f; // false !!g; // false
(1)+運(yùn)算符
即能用于數(shù)字加法,也能用于字符串拼接
如果 + 的其中一個(gè)操作數(shù)是字符串(或者通過(guò)對(duì)其調(diào)用 ToPrimitive 抽象操作得到字符串), 則執(zhí)行字符串拼接;否則執(zhí)行數(shù)字加法。因?yàn)閿?shù)組的 valueOf() 操作無(wú)法得到簡(jiǎn)單基本類(lèi)型值,于是它轉(zhuǎn)而調(diào)用 toString()。因此下例中的兩個(gè)數(shù)組變成了 "1,2" 和 "3,4"。+ 將它們拼接后返回 "1,23,4"。
let a = "42"; let b = "0"; a + b; // "420" let c = 42; let d = 0; c + d; // 42 let x = [1,2]; let y = [3,4]; x + y; // "1,23,4"
可以使用+運(yùn)算符進(jìn)行字符串轉(zhuǎn)換,將數(shù)字和空字符串 "" 相 + 來(lái)將其轉(zhuǎn)換為字符串
let a = 42; let b = a + ""; b; // "42"
a + ""(隱式)和前面的String(a)(顯式)之間有一個(gè)細(xì)微的差別需要注意。
根據(jù) ToPrimitive抽象操作規(guī)則,a + ""會(huì)對(duì)a調(diào)用valueOf()方法,然后通過(guò)ToString抽象 操作將返回值轉(zhuǎn)換為字符串。而 String(a) 則是直接調(diào)用 ToString()。它們最后返回的都是字符串,但如果 a 是對(duì)象而非數(shù)字結(jié)果可能會(huì)不一樣
let a = { valueOf: function() { return 42; }, toString: function() { return 4; } }; a + ""; // "42" String( a ); // "4"
(2)從字符串強(qiáng)制類(lèi)型轉(zhuǎn)換為數(shù)字的情況
-是數(shù)字減法運(yùn)算符,因此a - 0會(huì)將a強(qiáng)制類(lèi)型轉(zhuǎn)換為數(shù)字。也可以使用a * 1和a /1,因?yàn)檫@兩個(gè)運(yùn)算符也只適用于數(shù)字,只不過(guò)這樣的用法不太常見(jiàn)
let a = [3]; let b = [1]; a - b; // 2
1、js屬于一種解釋性腳本語(yǔ)言;2、在絕大多數(shù)瀏覽器的支持下,js可以在多種平臺(tái)下運(yùn)行,擁有著跨平臺(tái)特性;3、js屬于一種弱類(lèi)型腳本語(yǔ)言,對(duì)使用的數(shù)據(jù)類(lèi)型未做出嚴(yán)格的要求,能夠進(jìn)行類(lèi)型轉(zhuǎn)換,簡(jiǎn)單又容易上手;4、js語(yǔ)言安全性高,只能通過(guò)瀏覽器實(shí)現(xiàn)信息瀏覽或動(dòng)態(tài)交互,從而有效地防止數(shù)據(jù)的丟失;5、基于對(duì)象的腳本語(yǔ)言,js不僅可以創(chuàng)建對(duì)象,也能使用現(xiàn)有的對(duì)象。
看完了這篇文章,相信你對(duì)“javascript進(jìn)行類(lèi)型強(qiáng)制轉(zhuǎn)換的方法”有了一定的了解,如果想了解更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。