我們將學習 JavaScript 中非布林值強制轉換為布林值。對於初學者來說,強制轉換這個詞在 JavaScript 中是新的。那麼,讓我們澄清一下什麼是強制。
強制是將一種資料類型的變數轉換為另一種資料型別。眾所周知,JavaScript 不是一種嚴格類型的語言。因此,我們不需要定義變數的類型。有時,JavaScript 會自動強制變數並在輸出中給出不可預測的結果。
JavaScript 中有兩種類型的強制轉換。一種是隱式強制,另一種是顯式強制。我們將在本教程中一一學習這兩種強制轉換。
明確強制
當使用布林強制方法之一(例如 Boolean() 或 !!)將非布林值明確轉換為布林值時,就會發生明確強制轉換。
我們將詳細討論這兩種方法:
使用雙重 NOT (!!) 運算子進行明確強制轉換
當我們在 JavaScript 中對任何值使用 not (!) 運算子時,它會將非布林值轉換為布林值。
一個 not(!) 運算子給出值的錯誤結果,兩個 not (!!) 運算子給出布林值的實際結果。
文法
使用者可以遵循以下語法,使用雙 NOT 運算子將非布林值強制轉換為布林值。 -
var non_bool = "non-bool"; var bool = !!non_bool;
在上面的語法中,第一個 not (!) 運算子將字串類型的 non_bool 變數強制轉換為布林變數。第二個 not(!) 運算子用於取得 non_bool 變數的實際布林值。
以下是使用雙 NOT 運算子的一些範例 -
console.log(!!0); // logs false console.log(!!1); // logs true
在上面的範例中,使用雙 NOT 運算子將非布林值 0 明確強制為布林值。雙 NOT 運算子將其運算元轉換為布林值,然後將其取反,因此表達式 !!0 相當於 !(!false),其計算結果為 false。
讓我們來看一個使用 HTML 和 JavaScript 的完整範例
範例
在此範例中,我們建立了三個數字變量,名稱為 num1、num2 和 num3。此外,我們也使用不同的正值、負值和零值初始化了數字變數。
使用者可以觀察輸出中數字的實際布林值。零的布林值是 false,因為它是 JavaScript 中的假布林值之一。
<html> <body> <h2 id="Coercion-using-i-Doble-NOT-i-Operator"> Coercion using <i> Doble NOT (!!) </i> Operator </h2> <p id = "output"> </p> <script> let output = document.getElementById("output"); let num1 = 10; let num2 = 0; let num3 = -10; output.innerHTML += "num1 = " + num1 + "<br/>"; output.innerHTML += "num2 = " + num2 + "<br/>"; output.innerHTML += "num3 = " + num3 + "<br/>"; output.innerHTML += "The boolean results of the above number values are given below.<br/>"; // Using Double NOT Operator num1 = !!num1; num2 = !!num2; num3 = !!num3; output.innerHTML += "num1 = " + num1 + "<br/>"; output.innerHTML += "num2 = " + num2 + "<br/>"; output.innerHTML += "num3 = " + num3 + "<br/>"; </script> </body> </html>
使用 Boolean() 建構子進行明確強制轉換
在 JavaScript 中,明確強制轉換是 JavaScript 開發人員將變數從一種資料類型轉換為另一種資料類型。在這裡,我們將學習將非布林值明確強制轉換為布林值。
我們可以簡單地使用 JavaScript 中的「布林」建構函式將任何值轉換為布林值。
文法
使用者可以依照以下語法將 JavaScript 中的非布林值強制轉換為布林值。
let var1 = 30; let var2 = Boolean(var1);
在上面的語法中,var1 是數字資料類型,我們使用布林建構函數將其強制轉換為布林值。
以下是使用 Boolean() 建構子的一些範例 -
console.log(Boolean(0)); // logs false console.log(Boolean(1)); // logs true
在上面的範例中,使用布林函數將非布林值 0 明確強制為布林值。 Boolean 函數傳回其參數的布林值,因此表達式 Boolean(0) 傳回 false。
當我們將除六個 false 值之外的任何非布林值強制轉換為布林值時,它總是會給出 true 結果。對於六個錯誤值,我們總是得到錯誤的布林值作為結果。
下面給了六個假布林值。
錯誤
“”
NaN
#0
空
未定義
範例
我們在這個例子中創建了不同的變量,並用不同的假值初始化它們。我們可以觀察到,當我們將它們強制為布林值時,它總是給出一個錯誤的布林值。
<html> <body> <h2 id="Coercion-using-the-i-Boolean-i-Constructor"> Coercion using the <i> Boolean()</i> Constructor </h2> <p id = "output"> </p> <script> let output = document.getElementById("output"); // Creating the variables let falsy1 = undefined; let falsy2 = null; let falsy3 = ""; output.innerHTML += "falsy1 = " + falsy1 + "<br/>"; output.innerHTML += "falsy2 = " + falsy2 + "<br/>"; output.innerHTML += "falsy3 = " + falsy3 + "<br/>"; output.innerHTML += "The boolean results of the above falsy values are given below.<br/>"; // coercing the different falsy values to the boolean values. output.innerHTML += "falsy1 = " + Boolean(falsy1) + "<br/>"; output.innerHTML += "falsy2 = " + Boolean(falsy2) + "<br/>"; output.innerHTML += "falsy3 = " + Boolean(falsy3) + "<br/>"; </script> </body> </html>
隱式強制
當在需要布林值的上下文中使用非布林值時,就會發生隱含強制轉換。在這種情況下,JavaScript 將使用一組稱為「真值」和「假值」的規則自動將值轉換為布林值。
以下是一些如何將非布林值強制轉換為布林值的範例 -
範例
在此範例中,我們使用 JavaScript 中圖像的隱藏屬性透過點擊顯示圖像 -
// Example 1: Implicit coercion in a conditional statement if (0) { console.log("This will not be logged"); } // Example 2: Implicit coercion using the logical NOT operator console.log(!0); // logs true console.log(!1); // logs false
在第一個範例中,值 0 用於條件語句中,並且使用真值和假值的規則將其隱式強制為布林值。在 JavaScript 中,值 0 被視為 false,因此條件語句不會被執行。
在第二個範例中,邏輯 NOT 運算子用於對非布林值 0 的布林值取反。邏輯 NOT 運算子會反轉其運算元的布林值,因此表達式 !0 等效於 !false,其評估結果為 true。
JavaScript 中有兩種類型的強制轉換。一種是隱式強制,另一種是顯式強制。我們在本教程中一一學習了這兩種類型的強制轉換。
以上是解釋一下 JavaScript 中非布林值到布林值的強制轉換?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

JavaScript在Web開發中的主要用途包括客戶端交互、表單驗證和異步通信。 1)通過DOM操作實現動態內容更新和用戶交互;2)在用戶提交數據前進行客戶端驗證,提高用戶體驗;3)通過AJAX技術實現與服務器的無刷新通信。

理解JavaScript引擎內部工作原理對開發者重要,因為它能幫助編寫更高效的代碼並理解性能瓶頸和優化策略。 1)引擎的工作流程包括解析、編譯和執行三個階段;2)執行過程中,引擎會進行動態優化,如內聯緩存和隱藏類;3)最佳實踐包括避免全局變量、優化循環、使用const和let,以及避免過度使用閉包。

Python更適合初學者,學習曲線平緩,語法簡潔;JavaScript適合前端開發,學習曲線較陡,語法靈活。 1.Python語法直觀,適用於數據科學和後端開發。 2.JavaScript靈活,廣泛用於前端和服務器端編程。

Python和JavaScript在社區、庫和資源方面的對比各有優劣。 1)Python社區友好,適合初學者,但前端開發資源不如JavaScript豐富。 2)Python在數據科學和機器學習庫方面強大,JavaScript則在前端開發庫和框架上更勝一籌。 3)兩者的學習資源都豐富,但Python適合從官方文檔開始,JavaScript則以MDNWebDocs為佳。選擇應基於項目需求和個人興趣。

從C/C 轉向JavaScript需要適應動態類型、垃圾回收和異步編程等特點。 1)C/C 是靜態類型語言,需手動管理內存,而JavaScript是動態類型,垃圾回收自動處理。 2)C/C 需編譯成機器碼,JavaScript則為解釋型語言。 3)JavaScript引入閉包、原型鍊和Promise等概念,增強了靈活性和異步編程能力。

不同JavaScript引擎在解析和執行JavaScript代碼時,效果會有所不同,因為每個引擎的實現原理和優化策略各有差異。 1.詞法分析:將源碼轉換為詞法單元。 2.語法分析:生成抽象語法樹。 3.優化和編譯:通過JIT編譯器生成機器碼。 4.執行:運行機器碼。 V8引擎通過即時編譯和隱藏類優化,SpiderMonkey使用類型推斷系統,導致在相同代碼上的性能表現不同。

JavaScript在現實世界中的應用包括服務器端編程、移動應用開發和物聯網控制:1.通過Node.js實現服務器端編程,適用於高並發請求處理。 2.通過ReactNative進行移動應用開發,支持跨平台部署。 3.通過Johnny-Five庫用於物聯網設備控制,適用於硬件交互。

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


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

SublimeText3漢化版
中文版,非常好用

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具