強制轉換方法:1、使用ToString()、ToNumber()或ToBoolean()方法;2、使用String()、Number()或Boolean()方法;3、使用「 」或「- 」運算子;4、使用「if()」、「while()」等語句。
本教學操作環境: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中文網其他相關文章!

我使用您的日常技術工具構建了功能性的多租戶SaaS應用程序(一個Edtech應用程序),您可以做同樣的事情。 首先,什麼是多租戶SaaS應用程序? 多租戶SaaS應用程序可讓您從唱歌中為多個客戶提供服務

本文展示了與許可證確保的後端的前端集成,並使用Next.js構建功能性Edtech SaaS應用程序。 前端獲取用戶權限以控制UI的可見性並確保API要求遵守角色庫

JavaScript是現代Web開發的核心語言,因其多樣性和靈活性而廣泛應用。 1)前端開發:通過DOM操作和現代框架(如React、Vue.js、Angular)構建動態網頁和單頁面應用。 2)服務器端開發:Node.js利用非阻塞I/O模型處理高並發和實時應用。 3)移動和桌面應用開發:通過ReactNative和Electron實現跨平台開發,提高開發效率。

JavaScript的最新趨勢包括TypeScript的崛起、現代框架和庫的流行以及WebAssembly的應用。未來前景涵蓋更強大的類型系統、服務器端JavaScript的發展、人工智能和機器學習的擴展以及物聯網和邊緣計算的潛力。

JavaScript是現代Web開發的基石,它的主要功能包括事件驅動編程、動態內容生成和異步編程。 1)事件驅動編程允許網頁根據用戶操作動態變化。 2)動態內容生成使得頁面內容可以根據條件調整。 3)異步編程確保用戶界面不被阻塞。 JavaScript廣泛應用於網頁交互、單頁面應用和服務器端開發,極大地提升了用戶體驗和跨平台開發的靈活性。

Python更适合数据科学和机器学习,JavaScript更适合前端和全栈开发。1.Python以简洁语法和丰富库生态著称,适用于数据分析和Web开发。2.JavaScript是前端开发核心,Node.js支持服务器端编程,适用于全栈开发。

JavaScript不需要安裝,因為它已內置於現代瀏覽器中。你只需文本編輯器和瀏覽器即可開始使用。 1)在瀏覽器環境中,通過標籤嵌入HTML文件中運行。 2)在Node.js環境中,下載並安裝Node.js後,通過命令行運行JavaScript文件。

如何在Quartz中提前發送任務通知在使用Quartz定時器進行任務調度時,任務的執行時間是由cron表達式設定的。現�...


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

禪工作室 13.0.1
強大的PHP整合開發環境

Atom編輯器mac版下載
最受歡迎的的開源編輯器

Dreamweaver CS6
視覺化網頁開發工具

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能