JavaScript菜鳥教程

JavaScript 對(duì)象

JavaScript 函數(shù)

JS HTML DOM

JS 瀏覽器BOM

AJAX 菜鳥教程

JavaScript 參考手冊(cè)

JavaScript 類型轉(zhuǎn)換

類型轉(zhuǎn)換是一種將一種數(shù)據(jù)類型轉(zhuǎn)換為另一種數(shù)據(jù)類型的方法。

在JavaScript中,數(shù)據(jù)類型用于對(duì)一種特定的數(shù)據(jù)類型進(jìn)行分類,確定可以分配給該類型的值以及可以對(duì)其執(zhí)行的操作。

JavaScript數(shù)據(jù)類型

在JavaScript中,有5種不同的數(shù)據(jù)類型可以包含值:

  • string

  • number

  • boolean

  • object

  • function

有3種類型的對(duì)象:

  • Object

  • Date

  • Array

還有2種不能包含值的數(shù)據(jù)類型:

  • null

  • undefined

運(yùn)算符的類型

typeof運(yùn)算符可以幫助你找到你的變量的類型。

typeof運(yùn)算符返回一個(gè)變量或表達(dá)式的類型。

typeof ""  // 返回 "string"
typeof "Vishal"// 返回 "string"
typeof "42"// 返回 "string" (引號(hào)內(nèi)的數(shù)字為字符串)
typeof 42  // 返回 "number"
typeof true// 返回 "boolean"
typeof false   // 返回 "boolean"
typeof undefined   // 返回 "undefined"
typeof null// 返回 "object"
typeof {name:"Vishal", age:22} // 返回 "object"
typeof [2, 4, 6, 8]// 返回 "object" (不是“數(shù)組”)
typeof function myFunc(){} // 返回 "function"
測試看看?/?

您可以使用typeof運(yùn)算符查找JavaScript變量的數(shù)據(jù)類型。

隱式轉(zhuǎn)換

作為一種編程語言,JavaScript非常能容忍意外值。因此,JavaScript 將嘗試轉(zhuǎn)換意外值,而不是直接拒絕它們。這種隱式轉(zhuǎn)換稱為類型強(qiáng)制。

例如,在數(shù)學(xué)運(yùn)算中,值會(huì)自動(dòng)轉(zhuǎn)換為數(shù)字。

但是,結(jié)果并不總是您所期望的:

"3" + 2// 返回 "32"  (因?yàn)?被轉(zhuǎn)換成“2” )
"3" - 2// 返回 1 (因?yàn)椤?”被轉(zhuǎn)換為3)
"3" * "2"  // 返回 6 (因?yàn)?nbsp;"3" 和 "2" 被轉(zhuǎn)換為 3 和 2)
2 + true   // 返回 3 (因?yàn)?nbsp;true 被轉(zhuǎn)換為 1)
2 + false  // 返回 2 (因?yàn)?nbsp;false 被轉(zhuǎn)換為 0)
2 + null   // 返回 2 (因?yàn)?nbsp;null 被轉(zhuǎn)換為 0)
"2" + null // 返回 "2null"   (因?yàn)?nbsp;null 被轉(zhuǎn)換為 "null")
測試看看?/?

在某些情況下,我們需要將值從一種數(shù)據(jù)類型顯式轉(zhuǎn)換為另一種數(shù)據(jù)類型。

JavaScript提供了許多不同的方法來執(zhí)行此類數(shù)據(jù)類型轉(zhuǎn)換任務(wù)。

在以下各節(jié)中,我們將詳細(xì)討論這些方法。

將值轉(zhuǎn)換為字符串

可以通過調(diào)用String()函數(shù)或x.toString()方法將值顯式轉(zhuǎn)換為字符串。

通過該String()函數(shù),我們將值true傳遞給參數(shù),從而將布爾值轉(zhuǎn)換為字符串:

String(true);// 返回 "true"
測試看看?/?

另外,我們可以將數(shù)字傳遞給函數(shù):

String(108);// 返回 "108"
測試看看?/?

我們可以使用typeof運(yùn)算符檢查類型:

typeof String(true);// 返回 "string"
typeof String(108); // 返回 "string"
測試看看?/?

我們可以以類似的方式使用x.toString()方法。我們可以將x替換為變量:

let temp = 108;
temp.toString();
測試看看?/?

或者,我們可以將值放在括號(hào)內(nèi),而不是使用x.toString()進(jìn)行變量設(shè)置:

(9048).toString();// 返回 "9048"
(false).toString();   // 返回 "false"
(50 + 20).toString(); // 返回 "70"
測試看看?/?

通過使用String()x.toString()我們可以將Boolean或number數(shù)據(jù)類型的值顯式轉(zhuǎn)換為字符串值,以確保我們的代碼按預(yù)期運(yùn)行。

將值轉(zhuǎn)換為數(shù)字

將值轉(zhuǎn)換為數(shù)字?jǐn)?shù)據(jù)類型時(shí),我們將使用Number()函數(shù)。

首先,我們將把數(shù)字文本字符串轉(zhuǎn)換為數(shù)字,但也可以轉(zhuǎn)換布爾值。

我們可以將一個(gè)數(shù)字字符串傳遞給Number()函數(shù):

Number("1992");// 返回 1992
測試看看?/?

我們還可以將字符串分配給變量,然后將其轉(zhuǎn)換:

let debt = "3500";
Number(debt); // 返回 3500
測試看看?/?

空格字符串或空字符串將轉(zhuǎn)換為0(零):

Number(" ");// 返回 0
Number(""); // 返回 0
測試看看?/?

    注意,非數(shù)字字符串將轉(zhuǎn)換為NaN, NaN表示非數(shù)字。這包括以空格分隔的數(shù)字:

Number("seventy");   // 返回 NaN
Number("Hello world");   // 返回 NaN
Number("12,000");// 返回 NaN
Number("5 7");   // 返回 NaN
Number("26-11-2008");// 返回 NaN
測試看看?/?

對(duì)于布爾數(shù)據(jù)類型,false的值為0,true的值為1

Number(false);  // 返回 0
Number(true);   // 返回 1
測試看看?/?

如果參數(shù)是Date對(duì)象,則Number()函數(shù)返回自UTC 1970年1月1日午夜以來的毫秒數(shù):

Number(new Date());
測試看看?/?

Number()函數(shù)將非數(shù)字?jǐn)?shù)據(jù)類型轉(zhuǎn)換為數(shù)字。

將值轉(zhuǎn)換為布爾值

要將數(shù)字或字符串轉(zhuǎn)換為布爾值,請(qǐng)使用該Boolean()函數(shù)。

任何被解釋為空的值(例如數(shù)字0,空字符串或未定義或NaN或null的值)都將轉(zhuǎn)換為false

Boolean(0); // 返回 false
Boolean("");// 返回 false
Boolean(undefined); // 返回 false
Boolean(NaN);   // 返回 false
Boolean(null);  // 返回 false
測試看看?/?

其他值將轉(zhuǎn)換為true,包括由空格組成的字符串文字:

Boolean(50); // 返回 true
Boolean(-50);// 返回 true
Boolean(3.14);   // 返回 true
Boolean("false");// 返回 true
Boolean("Hello World");  // 返回 true
測試看看?/?

注意,“ 0”作為字符串文字將轉(zhuǎn)換為true,因?yàn)樗且粋€(gè)非空的字符串值:

Boolean("0");   // 返回 true
測試看看?/?

將數(shù)字和字符串轉(zhuǎn)換為布爾值可以使我們能夠評(píng)估二進(jìn)制術(shù)語內(nèi)的數(shù)據(jù),并且可以利用它來指定程序中的指定流。

將數(shù)組轉(zhuǎn)換為字符串

toString()方法將數(shù)組轉(zhuǎn)換為(逗號(hào)分隔)數(shù)組值的字符串。

var months = ["Jan", "Feb", "Mar", "Apr", "May"];
document.getElementById("result").innerHTML = months.toString();
測試看看?/?

join()方法還將數(shù)組的所有元素轉(zhuǎn)換為新的字符串。

此方法的行為類似于toString(),但是您還可以指定分隔符。

var fruits = ["Banana", "Apple", "Mango"];

fruits.join(" + ");   // Banana + Apple + Mango
fruits.join(" / ");   // Banana / Apple / Mango
fruits.join(" © ");  // Banana ? Apple ? Mango
測試看看?/?

當(dāng)期望原始值時(shí),JavaScript自動(dòng)將數(shù)組轉(zhuǎn)換為逗號(hào)分隔的字符串。

當(dāng)您嘗試輸出數(shù)組時(shí),總是如此。

let fruits = ["Apple", "Mango", "Banana", "Orange"];
document.getElementById("result").innerHTML = fruits;
測試看看?/?

將字符串轉(zhuǎn)換為數(shù)組

split()方法將字符串拆分為子字符串?dāng)?shù)組,然后返回新數(shù)組。

我們將使用split()方法通過以表示的空格字符分隔數(shù)組" "。

var str = 'Air Pollution is introduction of chemicals to the atmosphere.';
var arr = str.split(" ");
測試看看?/?

現(xiàn)在我們?cè)?strong>arr變量中有了一個(gè)新數(shù)組,我們可以使用索引號(hào)訪問每個(gè)元素:

arr[0];   // Air
arr[2];   // is
測試看看?/?

在以下示例中,我們將使用“ i”作為分隔符:

var str = 'Air Pollution is introduction of chemicals to the atmosphere.';
var arr = str.split("i");
測試看看?/?

如果將空字符串("")用作分隔符,則該字符串將轉(zhuǎn)換為字符數(shù)組:

var str = 'Air Pollution is introduction of chemicals to the atmosphere.';
var arr = str.split("");
測試看看?/?
丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清