<p>深入探索JavaScript運算子:從算術運算子到三元運算子</p>
<p>本文將深入探討JavaScript運算子。 </p>
<p>JavaScript運算子包括:</p>
<ol>
<li>算術運算子:<code> </code>, <code>-</code>, <code>*</code>, <code>/</code>, <code>%</code>, <code>**</code>
</li>
<li>否定運算子:<code>-</code>(一元負號),<code>!</code>(邏輯非)</li>
<li>比較運算子:<code>></code>, <code><</code>, <code>>=</code>, <code><=</code>, <code>==</code>, <code>!=</code>, <code>===</code>, <code>!==</code></li>
<li>邏輯運算子:<code>&&</code>(與),<code>||</code>(或),<code>!</code>(非)</li>
<li>空值合併運算子:<code>??</code></li>
<li>三元運算子:<code>? :</code></li>
</ol>
<p><strong>真值與假值:</strong></p>
<p>假值:0, "" (空字串), <code>false</code>, <code>null</code>, <code>undefined</code>, 和 <code>NaN</code>
真值:其他所有值</p>
<p><strong>操作數:</strong></p>
<p>運算子作用於的值或變數。例如,在表達式 <code>5 2</code> 中,數字 5 和 2 是運算式。 </p>
<p><strong>一元運算子:</strong></p>
<p>運算子作用於單一運算元時,稱為一元運算子。例如:<code> 5</code>, <code>-x</code>(對 x 取反),或 <code>typeof "123"</code>。 </p>
<p><strong>二元運算子:</strong></p>
<p>運算子作用於兩個運算元時,稱為二元運算子。例如:<code>5 2</code>, <code>x * y</code>。 </p>
<p><strong>算術運算子:</strong> <code> </code>, <code>-</code>, <code>*</code>, <code>/</code>, <code>%</code>, <code>**</code></p>
<p>JavaScript會在運算中隱式轉換型別。例如:</p>
<p><code>5 - "3"</code> 結果為整數 2("3" 轉換為整數 3 進行減法運算)
<code>10 % "3"</code> 結果為整數 1</p>
<p><strong><code> </code> 運算子的特殊行為:</strong></p>
<p>對於字串,<code> </code> 運算子會將它們連接起來。例如:</p>
<p><code>let value = "hello" "world" "!";</code> // "helloworld!"</p>
<p>這種行為與其他算術運算符不同。如果任一運算元為字串類型,<code> </code> 運算子將連接運算元。例如:</p>
<p><code>"10" 4</code> 結果為字串 "104"。
<code>1 1 "5"</code> 結果為字串 "25"(從左到右計算)。 </p>
<p><strong>一元 <code> </code>:</strong></p>
<p>一元 <code> </code> 運算子將非數字轉換為數字。它是 <code>Number()</code> 的簡寫。例如:</p>
<p><code> "123"</code> // 123
<code> true</code> // 1
<code> ""</code> // 0</p>
<p><strong>否定運算子:</strong></p>
<p>一元 <code>-</code> 運算子對數字或變數取反,有效翻轉其符號。例如:</p>
<p><code>let x = 3;</code>
<code>console.log(-x);</code> // -3</p>
<p><strong>比較運算子:</strong></p><p>比較運算符比較數字,這與我們從數學中了解的一樣。對於字符串,JavaScript 基於字母順序或詞法順序進行比較。您可以參考字符編碼表(ASCII 或 Unicode)。在執行比較時,JavaScript 會根據需要將值轉換為數字。例如:</p>
<p><code>"2" > 1</code> // true
<p>JavaScript 在其比較行為中有一些特性:</p>
<p><code>null == undefined</code> // true
<code>null === undefined</code> // false
<code>NaN == NaN</code> // false (NaN 定義為“不等於任何值,包括自身”)</p>
<p><strong>邏輯運算符:</strong></p>
<p><strong><code>&&</code> (與)</strong></p>
<p><code>&&</code> 運算符只有當兩個操作數都為真值時才返回 <code>true</code>。 </p>
<p><code>true && true</code> // true
<code>true && false</code> // false
<code>false && true</code> // false
<code>false && false</code> // false</p>
<p>JavaScript 從左到右計算值。如果左操作數為真值,則繼續計算右操作數並返回右值。 </p>
<p><code>1 && 2</code> // 2
<code>1 && true && 3</code> // 3</p>
<p>如果遇到假值,則停止並返回假值。 </p>
<p><code>1 && null</code> // null
<code>1 && 2 && undefined</code> // undefined</p>
<p>如果所有操作數都為真值,則返回最後一個值。 </p>
<p><code>1 && 2 && 3</code> // 3</p>
<p><strong><code>||</code> (或)</strong></p>
<p><code>||</code> 運算符如果任一操作數為真值則返回 <code>true</code>。 </p>
<p><code>true || true</code> // true
<code>true || false</code> // true
<code>false || true</code> // true
<code>false || false</code> // false</p>
<p>JavaScript 從左到右計算值。它返回遇到的第一個真值。 </p>
<p><code>null || 1</code> // 1
<code>undefined || 0 || 2 || 5</code> // 2</p>
<p>如果沒有操作數為真值,則返回最後一個值。 </p>
<p><code>null || undefined || 0</code> // 0</p>
<p><strong><code>!</code> (非)</strong></p>
<p><code>!</code> 運算符反轉操作數的布爾值。它將操作數轉換為布爾值(<code>true</code> 或 <code>false</code>),然後返回相反的值。 </p>
<p><code>!true</code> // false
<code>!0</code> // true
<code>if (!true) {</code>
<code>console.log("This won't run.");</code>
<code>}</code></p>
<p><strong>空值合併運算符:<code>??</code></strong></p>
<p>空值合併運算符 <code>??</code> 是較新的運算符 (ES2020)。它有助於處理需要檢查值是否為 <code>null</code> 或 <code>undefined</code> 並返回默認值的情況。 </p>
<p>語法:<code>let value = a ?? b;</code></p>
<p>如果 <code>a</code> 不是 <code>null</code> 也不是 <code>undefined</code>,則返回 <code>a</code>。
如果 <code>a</code> 是 <code>null</code> 或 <code>undefined</code>,則返回 <code>b</code>。 </p>
<p>此運算符很有用,因為它專門處理<code>null</code> 或<code>undefined</code>,而不受<code>0</code>, <code>""</code> 或<code>false</code> 等假值的影響,而<code>||</code> (或) 運算符會將它們視為假值並用第二個值替換。 </p>
<p><code>let height = 0;</code>
<code>alert(height || 100); // 100 (因为 0 是假值)</code>
<code>alert(height ?? 100); // 0 (因为 0 不是 null 或 undefined)</code></p>
<p><code>||</code> 返回第一個真值
<code>??</code> 返回第一個已定義的值</p>
<p><strong>三元運算符:<code>? :</code></strong></p>
<p>語法:<code>let result = condition ? value1 : value2;</code></p>
<p>條件被計算。如果為真值,則返回 <code>value1</code>;否則,返回 <code>value2</code>。 </p>
<p>三元運算符簡潔明了,通常用於簡單的條件賦值。例如:</p>
<p><code>const className = isActive ? "red" : "blue";</code></p>
<p>但是,不建議使用三元運算符來執行不同的代碼塊(如 <code>if</code> 語句)。這會導致代碼可讀性降低。 </p>
<p><code>||</code> 和 <code>??</code> 運算符有時看起來會產生類似的結果,但它們不能互換使用。 <code>&&</code> 運算符返回它遇到的第一個假值,而 <code>??</code> 只有在第一個值為 <code>null</code> 或 <code>undefined</code> 時才返回第二個值。根據您想要實現的行為,仔細考慮使用哪個運算符非常重要。 </p>
<p><img src="https://img.php.cn/upload/article/000/000/000/173777947349716.jpg" alt="Understanding JavaScript Operators: From Arithmetic to Ternary"></p>
</li>
</ol>
以上是了解JavaScript操作員:從算術到三元的詳細內容。更多資訊請關注PHP中文網其他相關文章!