目錄
一、型別轉換規則
二、顯示強制型別轉換
三、隱式強制型別轉換
首頁 web前端 js教程 javascript怎麼進行強制型別轉換

javascript怎麼進行強制型別轉換

Apr 19, 2021 pm 02:27 PM
javascript 強制型別轉換 類型轉換

強制轉換方法:1、使用ToString()、ToNumber()或ToBoolean()方法;2、使用String()、Number()或Boolean()方法;3、使用「 」或「- 」運算子;4、使用「if()」、「while()」等語句。

javascript怎麼進行強制型別轉換

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

一、型別轉換規則

1.ToString

對一般物件來說,除非自行定義toString方法,否則就會呼叫Object.prototype.toString()方法,如果物件有自己的toString方法,字串化就會呼叫該方法並使用其傳回值。

2.ToNumber

  • #對於基本型別其中true轉換為1,false轉換為0; undefined 轉換為NaN,null 轉換為0
  • 對於物件類型會先轉換成為基本型別值如果傳回的是非數字的基本型別值,則再遵循基本型別轉換規則將其強制轉換為數字。為了將值轉換為對應的基本型別值,抽像運算ToPrimitive會先檢查該值是否有 valueOf() 方法。如果有並且傳回基本型別值,再使用該值進行強制型別轉換。如果沒有就使用 toString() 的回傳值(如果存在)來進行強制型別轉換。 如果 valueOf() 和 toString() 都沒有傳回基本型別值,會產生 TypeError 錯誤。
let a = {
    valueOf:function(){
        return "42";
    }
};
let b = {
    toString:function(){
        return "42";
    }
};
let c = [4,2];
c.toString = function(){
    return this.join(""); //"42"
};

Number(a);     //42
Number(b);     //42
Number(c);     //42
Number('');    //0
Number([]);    //0
Number(["abc"];//NaN
登入後複製

3.ToBoolean

#JavaScript中的值可以分為能被強制轉換為false的值和能被強制轉換為true的值兩類。
假值:

  • undefined
  • null
  • false
  • 0、-0、NaN
  • ""

真值:除了上述清單的都可以理解為是真值,所有物件都是真值

let a1 = new Boolean( false );
let b1 = new Number( 0 );
let c1 = new String( "" );
let d1 = Boolean(a1 && b1 && c1); //true

let a2 = [];
let b2 = {};
let c2 = function(){};
let d2 = Boolean(a2 && b2 && c2); //true
登入後複製

二、顯示強制型別轉換

#1.字串與數字之間的顯示轉換

字串與數字之間的轉換是透過String(..)Number(..) 這兩個內建函數。
除了String(..) 和Number(..) 以外,還有其他方法可以實作字串和數字之間的明確轉換:

let a = 42;
let b = a.toString();
let c = "3.14";
let d = +c;
b; // "42"
d; // 3.14
登入後複製

a.toString() 是明確的,不過其中涉及隱式轉換。因為 toString() 對 42 這樣的基本型別值不適用,所以 JavaScript 引擎會自動為 42 建立一個封裝對象,然後對該對象呼叫 toString()。這裡顯式轉換含有隱式轉換。

2.顯示轉換為布林值

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(..) 是明確的,但並不常用。明確強制類型轉換為布林值最常用的方法是!!

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
登入後複製

【推薦學習:javascript高階教學

三、隱式強制型別轉換

1.字串與數字之間的隱含強制型別轉換

( 1) 運算子

即能用於數字加法,也能用於字串拼接

##如果的其中一個運算元是字串(或者透過對其呼叫ToPrimitive 抽像操作得到字串), 則執行字串拼接;否則執行數字加法。因為陣列的 valueOf() 運算無法得到簡單基本型別值,於是它轉而呼叫 toString()。因此下例中的兩個陣列變成了 "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"
登入後複製

可以使用運算子進行字串轉換,將數字和空字串"" 相來將其轉換為字串

let a = 42;
let b = a + "";
b; // "42"
登入後複製

a ""(隱含)和前面的String (a)(顯式)之間有一個細微的差別需要注意。

根據 ToPrimitive抽像操作規則,a ""會對a呼叫valueOf()方法,然後透過ToString抽象 操作將傳回值轉換為字串。而 String(a) 則是直接呼叫 ToString()。它們最後回傳的都是字串,但如果a 是物件而非數字結果可能會不一樣

let a = {
    valueOf: function() { return 42; },
    toString: function() { return 4; }
};
a + "";         // "42"
String( a );    // "4"
登入後複製

(2)從字串強制類型轉換為數字的情況

-是數字減法運算符,因此a - 0會將a強制類型轉換為數字。也可以使用a * 1和a /1,因為這兩個運算子也只適用於數字,只不過這樣的用法不太常見

let a = [3];
let b = [1];
a - b; // 2
登入後複製

2.隱式強制類型轉換為布林值

下面的情況會發生布林值隱式強制型別轉換:

(1) if (..)語句中的條件判斷式。

(2) for ( .. ; .. ; .. )語句中的條件判斷表達式(第二個)。

(3) while (..) 和 do..while(..) 迴圈中的條件判斷表達式。

(4) ? :中的條件判斷表達式。

(5) 邏輯運算子 ||(邏輯或)和 &&(邏輯與)左邊的運算元(作為條件判斷表達式)。

以上情況中,非布林值會被隱式強制型別轉換為布林值,遵循前面介紹過的 ToBoolean 抽像運算規則。

更多程式相關知識,請造訪:程式設計入門! !

以上是javascript怎麼進行強制型別轉換的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

如何使用WebSocket和JavaScript實現線上語音辨識系統 如何使用WebSocket和JavaScript實現線上語音辨識系統 Dec 17, 2023 pm 02:54 PM

如何使用WebSocket和JavaScript實現線上語音辨識系統引言:隨著科技的不斷發展,語音辨識技術已成為了人工智慧領域的重要組成部分。而基於WebSocket和JavaScript實現的線上語音辨識系統,具備了低延遲、即時性和跨平台的特點,成為了廣泛應用的解決方案。本文將介紹如何使用WebSocket和JavaScript來實現線上語音辨識系

WebSocket與JavaScript:實現即時監控系統的關鍵技術 WebSocket與JavaScript:實現即時監控系統的關鍵技術 Dec 17, 2023 pm 05:30 PM

WebSocket與JavaScript:實現即時監控系統的關鍵技術引言:隨著互聯網技術的快速發展,即時監控系統在各個領域中得到了廣泛的應用。而實現即時監控的關鍵技術之一就是WebSocket與JavaScript的結合使用。本文將介紹WebSocket與JavaScript在即時監控系統中的應用,並給出程式碼範例,詳細解釋其實作原理。一、WebSocket技

如何利用JavaScript和WebSocket實現即時線上點餐系統 如何利用JavaScript和WebSocket實現即時線上點餐系統 Dec 17, 2023 pm 12:09 PM

如何利用JavaScript和WebSocket實現即時線上點餐系統介紹:隨著網路的普及和技術的進步,越來越多的餐廳開始提供線上點餐服務。為了實現即時線上點餐系統,我們可以利用JavaScript和WebSocket技術。 WebSocket是一種基於TCP協定的全雙工通訊協議,可實現客戶端與伺服器的即時雙向通訊。在即時線上點餐系統中,當使用者選擇菜餚並下訂單

如何使用WebSocket和JavaScript實現線上預約系統 如何使用WebSocket和JavaScript實現線上預約系統 Dec 17, 2023 am 09:39 AM

如何使用WebSocket和JavaScript實現線上預約系統在當今數位化的時代,越來越多的業務和服務都需要提供線上預約功能。而實現一個高效、即時的線上預約系統是至關重要的。本文將介紹如何使用WebSocket和JavaScript來實作一個線上預約系統,並提供具體的程式碼範例。一、什麼是WebSocketWebSocket是一種在單一TCP連線上進行全雙工

golang函數的型別轉換 golang函數的型別轉換 Apr 19, 2024 pm 05:33 PM

函數中類型轉換允許將一種類型的資料轉換為另一種類型,從而擴展函數的功能。使用語法:type_name:=variable.(type)。例如,可使用strconv.Atoi函數將字串轉換為數字,並處理轉換失敗的錯誤。

JavaScript與WebSocket:打造高效率的即時天氣預報系統 JavaScript與WebSocket:打造高效率的即時天氣預報系統 Dec 17, 2023 pm 05:13 PM

JavaScript和WebSocket:打造高效的即時天氣預報系統引言:如今,天氣預報的準確性對於日常生活以及決策制定具有重要意義。隨著技術的發展,我們可以透過即時獲取天氣數據來提供更準確可靠的天氣預報。在本文中,我們將學習如何使用JavaScript和WebSocket技術,來建立一個高效的即時天氣預報系統。本文將透過具體的程式碼範例來展示實現的過程。 We

簡易JavaScript教學:取得HTTP狀態碼的方法 簡易JavaScript教學:取得HTTP狀態碼的方法 Jan 05, 2024 pm 06:08 PM

JavaScript教學:如何取得HTTP狀態碼,需要具體程式碼範例前言:在Web開發中,經常會涉及到與伺服器進行資料互動的場景。在與伺服器進行通訊時,我們經常需要取得傳回的HTTP狀態碼來判斷操作是否成功,並根據不同的狀態碼來進行對應的處理。本篇文章將教你如何使用JavaScript來取得HTTP狀態碼,並提供一些實用的程式碼範例。使用XMLHttpRequest

隱式型別轉換:型別的不同變體及其在程式設計中的應用探究 隱式型別轉換:型別的不同變體及其在程式設計中的應用探究 Jan 13, 2024 pm 02:54 PM

探索隱式類型轉換的不同類型及其在程式設計中的作用引言:在程式設計中,我們經常需要處理不同類型的資料。有時候,我們需要將一種資料類型轉換為另一種類型以便進行特定操作或滿足特定要求。在這個過程中,隱式型別轉換是一個非常重要的概念。隱式類型轉換指的是不需要明確指定轉換類型的情況下,程式語言會自動進行資料類型轉換的過程。本文將探討隱式類型轉換的不同類型及其在程式設計中的作用,

See all articles