首頁  >  文章  >  web前端  >  javascript資料型別轉換包含什麼

javascript資料型別轉換包含什麼

青灯夜游
青灯夜游原創
2021-09-09 15:30:443362瀏覽

javascript資料型別轉換包括:明確型別轉換和隱式型別轉換。明確型別轉換主要透過使用JavaScript內建的函數來轉換;而隱式型別轉換是指JavaScript根據運算環境自動轉換值的型別。

javascript資料型別轉換包含什麼

本教學操作環境:windows7系統、javascript1.8.5版、Dell G3電腦。

javascript資料型別轉換包括:顯式型別轉換和隱式型別轉換。

明確的轉換資料型別

#顯示的轉換資料型別主要透過JS定義的資料轉換方法。

1、轉換成字串

多數的JavaScript宿主環境(例如Node.js和Chrome)都提供了全域函數toString; 同時Object.prototype也定義了toString方法,使得所有物件都擁有轉換為字串的能力。

例如一個Number轉換為String:

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

toString接受一個參數指定進制,預設為10. 可以利用這個參數產生包括字母和數字的隨機字串:

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

random產生一個0到1的隨機數,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、轉換成數字

字串轉換為數字也是常見需求,通常用來從使用者輸入或檔案來取得一個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會忽略之後的所有內容。

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

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

3、強制類型轉換

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

隱含的資料轉換

#透過JavaScript 自行自動轉換。 JavaScript 能夠根據運算環境自動轉換值的類型,以滿足運算需求。

1、遞增與遞減運算子

       遞增與遞減運算子直接參考自C,且各有兩個版本:前型和後置型(a ,a-- , a , --a)。顧名思義,前置型應該位於要操作的變數之前,而後置型應該位於要操作的變數之後。

       這4個運算子對任何值都適用,也就是他們不僅適用於整數,還可以用於字串、布林值、浮點數數值和對象,此時伴隨著隱式的資料型別轉換


#2、一元四則運算

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

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

對於非法字元的情況通常會傳回NaN:

'1' * 'a'     // => NaN,这是因为parseInt(a)值为NaN,1 * NaN 还是 NaN

3、邏輯非運算子與比較運算子將任意值轉換為布林值

邏輯非運算子首先會將他的運算元轉換為布林值,然後再對其求反。

             

4、關係比較操作符

5、判斷語句

判斷語句中的判斷條件需要是Boolean型別,所以條件式會被隱含轉換成Boolean。其轉換規則同Boolean的建構子。例如:

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

6、Native程式碼呼叫

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

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

【推荐学习:javascript高级教程

以上是javascript資料型別轉換包含什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn