溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

javascript怎樣進行數(shù)據(jù)類型轉(zhuǎn)換

發(fā)布時間:2021-09-09 15:41:26 來源:億速云 閱讀:122 作者:柒染 欄目:web開發(fā)

這篇文章將為大家詳細講解有關javascript怎樣進行數(shù)據(jù)類型轉(zhuǎn)換,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

javascript數(shù)據(jù)類型轉(zhuǎn)換包括:顯式類型轉(zhuǎn)換和隱式類型轉(zhuǎn)換。顯式類型轉(zhuǎn)換主要通過使用JavaScript內(nèi)置的函數(shù)來轉(zhuǎn)換;而隱式類型轉(zhuǎn)換是指JavaScript根據(jù)運算環(huán)境自動轉(zhuǎn)換值的類型。

本教程操作環(huán)境:windows7系統(tǒng)、javascript1.8.5版、Dell G3電腦。

javascript數(shù)據(jù)類型轉(zhuǎn)換包括:顯式類型轉(zhuǎn)換和隱式類型轉(zhuǎn)換。

顯式的轉(zhuǎn)換數(shù)據(jù)類型

顯示的轉(zhuǎn)換數(shù)據(jù)類型主要通過JS定義的數(shù)據(jù)轉(zhuǎn)換方法。

1、轉(zhuǎn)換成字符串

多數(shù)的JavaScript宿主環(huán)境(比如Node.js和Chrome)都提供了全局函數(shù)toString; 與此同時Object.prototype也定義了toString方法,使得所有對象都擁有轉(zhuǎn)換為字符串的能力。

比如一個Number轉(zhuǎn)換為String:

var n = 1;
n.toString();   // '1'

toString接受一個參數(shù)指定進制,默認為10. 可以利用這個參數(shù)生成包括字母和數(shù)字的隨機字符串:

Math.random().toString(36).substr(2);

random生成一個0到1的隨機數(shù),36進制的字符集為[0-9a-z](36個),substr用來截掉起始的"0."。 另外Object.prototype.toString可以用來檢測JavaScript對象的類型:

var toString = Object.prototype.toString;
toString.call(new Date); // [object Date]
toString.call(new String); // [object String]
toString.call(Math); // [object Math]
// Since JavaScript 1.8.5
toString.call(undefined); // [object Undefined]
toString.call(null); // [object Null]
// 自定義類型
toString.call(new MyClass);   // [object Object]

2、轉(zhuǎn)換為數(shù)字

字符串轉(zhuǎn)換為數(shù)字也是常見需求,通常用來從用戶輸入或文件來獲得一個Number,在JavaScript中可以直接用parseInt和parseFloat。 例如:

var iNum1 = parseInt("12345red");   //返回 12345
var iNum1 = parseInt("0xA");    //返回 10
var iNum1 = parseInt("56.9");   //返回 56
var iNum1 = parseInt("red");    //返回 NaN
var fNum4 = parseFloat("11.22.33"); //返回 11.22

注意NaN是JavaScript中唯一一個不等于自己的值。(NaN == NaN) === false! 如果遇到非法字符,parseInt和parseFloat會忽略之后的所有內(nèi)容。

parseFloat只接受十進制數(shù)字的字符串,而parseInt還提供了第二個參數(shù)(可選)用來指定字符串表示數(shù)字的進制:

var iNum1 = parseInt("10", 2);  //返回 2
var iNum2 = parseInt("10", 8);  //返回 8
var iNum3 = parseInt("10", 10); //返回 10

3、強制類型轉(zhuǎn)換

Boolean(0)                // => false - 零
Boolean(new object())   // => true - 對象
Number(undefined)       // =>   NaN
Number(null)              // => 0
String(null)              // => "null"

隱式的數(shù)據(jù)轉(zhuǎn)換

通過 JavaScript 自身自動轉(zhuǎn)換。JavaScript 能夠根據(jù)運算環(huán)境自動轉(zhuǎn)換值的類型,以滿足運算需要。

1、遞增和遞減操作符

遞增和遞減操作符直接借鑒自C,而且各有兩個版本:前置型和后置型(a++ ,a-- ,++a , --a)。顧名思義,前置型應該位于要操作的變量之前,而后置型應該位于要操作的變量之后。

這4個操作符對任何值都適用,也就是他們不僅適用于整數(shù),還可以用于字符串、布爾值、浮點數(shù)值和對象,此時伴隨著隱式的數(shù)據(jù)類型轉(zhuǎn)換。

javascript怎樣進行數(shù)據(jù)類型轉(zhuǎn)換

javascript怎樣進行數(shù)據(jù)類型轉(zhuǎn)換javascript怎樣進行數(shù)據(jù)類型轉(zhuǎn)換


2、一元四則運算

加法運算符+是雙目運算符,只要其中一個是String類型,表達式的值便是一個String。

對于其他的四則運算,只有其中一個是Number類型,表達式的值便是一個Number。

對于非法字符的情況通常會返回NaN:

'1' * 'a'     // => NaN,這是因為parseInt(a)值為NaN,1 * NaN 還是 NaN

3、邏輯非操作符 與 比較操作符 將任意值轉(zhuǎn)換為 布爾值

邏輯非操作符首先會將他的操作數(shù)轉(zhuǎn)換為一個布爾值,然后再對其求反。

javascript怎樣進行數(shù)據(jù)類型轉(zhuǎn)換

4、關系比較操作符

javascript怎樣進行數(shù)據(jù)類型轉(zhuǎn)換

javascript怎樣進行數(shù)據(jù)類型轉(zhuǎn)換

5、判斷語句

判斷語句中的判斷條件需要是Boolean類型,所以條件表達式會被隱式轉(zhuǎn)換為Boolean。 其轉(zhuǎn)換規(guī)則同Boolean的構(gòu)造函數(shù)。比如:

var obj = {};
if(obj){
    while(obj);
}

6、Native代碼調(diào)用

JavaScript宿主環(huán)境都會提供大量的對象,它們往往不少通過JavaScript來實現(xiàn)的。 JavaScript給這些函數(shù)傳入的參數(shù)也會進行隱式轉(zhuǎn)換。例如BOM提供的alert方法接受String類型的參數(shù):

alert({a: 1});    // => [object Object]

關于javascript怎樣進行數(shù)據(jù)類型轉(zhuǎn)換就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI