溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

javascript進(jìn)行類(lèi)型強(qiáng)制轉(zhuǎn)換的方法

發(fā)布時(shí)間:2021-05-18 15:23:49 來(lái)源:億速云 閱讀:131 作者:小新 欄目:web開(kāi)發(fā)

小編給大家分享一下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電腦。

1.字符串與數(shù)字之間的顯示強(qiáng)制類(lèi)型轉(zhuǎn)換

字符串和數(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)換。

2.顯示轉(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

3.字符串和數(shù)字之間的隱式強(qiáng)制類(lèi)型轉(zhuǎn)換

(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

JavaScript有什么特點(diǎn)

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è)資訊頻道,感謝各位的閱讀!

向AI問(wèn)一下細(xì)節(jié)

免責(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)容。

AI