In diesem Artikel werden die Syntax des ternären Operators in JavaScript und einige häufige Verwendungsmöglichkeiten erläutert. Ich hoffe, er wird Ihnen hilfreich sein! Der
ternärer Operator (auch bekannt als Bedingungsoperator) kann verwendet werden, um Inline-Bedingungsprüfungen durchzuführen, anstatt eine if...else
-Anweisung zu verwenden. Dadurch wird der Code kürzer und besser lesbar. Es kann verwendet werden, um einer Variablen basierend auf einer Bedingung einen Wert zuzuweisen oder einen Ausdruck basierend auf einer Bedingung auszuführen. if...else
语句。它使代码更短,更易读。它可用于根据条件为变量赋值,或根据条件执行表达式。
三元运算符接受三个操作数;它是JavaScript中唯一能做到这一点的运算符。您提供一个要测试的条件,后跟一个问号,然后是两个用冒号分隔的表达式。如果条件被认为为真,则执行第一个表达式;如果它被认为是假的,则执行最终的表达式。
它以以下格式使用:
condition ? expr1 : expr2
这里,condition
是要测试的条件。如果其值被认为是true
,expr1
则执行。否则,如果其值被认为是false
,expr2
则执行。
expr1
并且expr2
是任何一种表达方式。它们可以是变量、函数调用,甚至是其他条件。
例如:
1 > 2 ? console.log("true") : console.log('false');
三元运算符最常见的用例之一是决定将哪个值分配给变量。通常,一个变量的值可能取决于另一个变量或条件的值。
虽然这可以使用if...else
语句来完成,但它会使代码更长且可读性更低。例如:
const numbers = [1,2,3]; let message; if (numbers.length > 2) { message = '数组太长'; } else { message = '数组太短'; } console.log(message); // 数组太长
在此代码示例中,您首先定义变量message
。然后,您使用该if...else
语句来确定变量的值。
这可以使用三元运算符在一行中简单地完成:
const numbers = [1,2,3]; let message = numbers.length > 2 ? '数组太长' : '数组太短'; console.log(message); // 数组太长
三元运算符可用于执行任何类型的表达式。
例如,如果您想根据变量的值决定运行哪个函数,您可以使用以下if...else
语句执行此操作:
if (feedback === "yes") { sayThankYou(); } else { saySorry(); }
这可以使用三元运算符在一行中完成:
feedback === "yes" ? sayThankYou() : saySorry();
如果feedback
具有 value yes
,则将sayThankYou
调用并执行该函数。否则,该saySorry
函数将被调用并执行。
在许多情况下,您可能正在处理可能有也可能没有定义值的变量——例如,从用户输入检索结果时,或从服务器检索数据时。
使用三元运算符,您可以通过在条件操作数的位置传递变量名称来检查变量是否存在null
。undefined
这在变量是对象时特别有用。如果您尝试访问实际上是null
or的对象上的属性undefined
,则会发生错误。首先检查对象是否实际设置可以帮助您避免错误。
例如:
let book = { name: '小明', works: '斗破苍穹' }; console.log(book ? book.name : '张三'); // "小明" book = null; console.log(book ? book.name : '张三'); // "张三"
在此代码块的第一部分,book
是一个具有两个属性的对象 -name
和works
在上使用三元运算符时book
,它会检查它是否不是null
or undefined
。如果不是——意味着它有一个值——name
则访问该属性并将输出控制台。否则,如果它为空,张三
输出控制台。
因为book
is not null
,所以书名会记录在控制台中。但是,在第二部分中,当应用相同的条件时,三元运算符中的条件将失败,因为book
is null
。因此,“张三”输出控制台。
尽管三元运算符是内联使用的,但可以将多个条件用作三元运算符表达式的一部分。您可以嵌套或链接多个条件来执行类似于if...else if...else
语句的条件检查。
例如,一个变量的值可能取决于多个条件。它可以使用if...else if...else
:
let score = '67'; let grade; if (score <p>在此代码块中,您测试变量的多个条件<code>score</code>以确定变量的字母等级。</p><p>可以使用三元运算符执行这些相同的条件,如下所示:</p><pre class="brush:php;toolbar:false">let score = '67'; let grade = score <p>评估第一个条件,即<code>score 。如果是<code>true</code>,那么 的<code>grade</code>值为<code>F</code>。如果是<code>false</code>,则计算第二个表达式,即<code>score 。</code></code></p><p>这一直持续到所有条件都为<code>false</code>,这意味着等级的值将为<code>A</code>,或者直到其中一个条件被评估为<code>true</code>并且其真实值被分配给<code>grade</code></p><h2 data-id="heading-0">Syntax🎜</h2>🎜Der ternäre Operator akzeptiert drei Operanden; er ist der einzige Operator in JavaScript, der dies kann. Sie geben eine Bedingung zum Testen an, gefolgt von einem Fragezeichen und dann zwei durch Doppelpunkte getrennten Ausdrücken. Wenn die Bedingung als wahr angesehen wird, wird der erste Ausdruck ausgeführt; wenn sie als falsch angesehen wird, wird der letzte Ausdruck ausgeführt. 🎜🎜Es wird im folgenden Format verwendet: 🎜<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:html;toolbar:false"><!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <style> #result { display: block; } button, #result { margin-top: 10px; } </style> </head> <body> <div> <label for="number">输入一个数字</label> <input type="number" name="number" id="number" /> </div> <button>提交</button> <span id="result"></span> </body> <script> const button = document.querySelector('button'); const numberElm = document.querySelector('#number'); const resultElm = document.querySelector('#result'); button.addEventListener('click', function() { resultElm.textContent = numberElm.value > 100 ? '太高' : (numberElm.value < 100 ? '太低' : '完美'); }); </script> </html>
condition
die zu testende Bedingung. Wenn sein Wert als true
betrachtet wird, wird expr1
ausgeführt. Andernfalls wird expr2
ausgeführt, wenn sein Wert als false
betrachtet wird. 🎜🎜expr1
und expr2
sind beliebige Ausdrücke. Dies können Variablen, Funktionsaufrufe oder auch andere Bedingungen sein. 🎜🎜Zum Beispiel: 🎜rrreeeif...else
-Anweisungen erfolgen, der Code wird dadurch jedoch länger und weniger lesbar. Zum Beispiel: 🎜rrreee🎜In diesem Codebeispiel definieren Sie zunächst die Variable message
. Anschließend verwenden Sie die Anweisung if...else
, um den Wert der Variablen zu bestimmen. 🎜🎜Dies kann einfach in einer Zeile mit dem ternären Operator erfolgen: 🎜rrreeeif...else
-Anweisung tun: 🎜rrreee🎜Das ist möglich in einer Zeile mit dem ternären Operator Fertig: 🎜rrreee🎜Wenn feedback
den Wert yes
hat, wird sayThankYou
aufgerufen und die Funktion ausgeführt . Andernfalls wird die Funktion saySorry
aufgerufen und ausgeführt. 🎜null
existiert, indem Sie den Variablennamen anstelle des bedingten Operanden übergeben. undefiniert
🎜🎜Dies ist besonders nützlich, wenn die Variable ein Objekt ist. Ein Fehler tritt auf, wenn Sie versuchen, auf eine Eigenschaft eines Objekts zuzugreifen, das tatsächlich null
oder undefiniert
ist. Wenn Sie zunächst überprüfen, ob das Objekt tatsächlich festgelegt ist, können Sie Fehler vermeiden. 🎜🎜Zum Beispiel: 🎜rrreee🎜Im ersten Teil dieses Codeblocks ist book
ein Objekt mit zwei Eigenschaften – name
und works
in Wenn der ternäre Operator für book
verwendet wird, prüft er, ob er nicht null
oder undefiniert
ist. Wenn nicht – das heißt, es hat einen Wert – name
, wird auf die Eigenschaft zugegriffen und diese an die Konsole ausgegeben. Andernfalls, wenn es leer ist, gibt 张三
die Konsole aus. 🎜🎜Da book
nicht null
ist, wird der Buchtitel in der Konsole aufgezeichnet. Wenn jedoch im zweiten Teil dieselbe Bedingung angewendet wird, schlägt die Bedingung im ternären Operator fehl, da book
null
ist. Daher gibt „Zhang San“ die Konsole aus. 🎜if...else if...else
-Anweisungen durchzuführen. 🎜🎜Zum Beispiel kann der Wert einer Variablen von mehreren Bedingungen abhängen. Dies kann mit if...else if...else
erfolgen: 🎜rrreee🎜In diesem Codeblock testen Sie mehrere Bedingungen der Variablen score
, um den Buchstaben zu bestimmen der variablen Note. 🎜🎜Dieselben Bedingungen können mit dem ternären Operator wie folgt ausgeführt werden: 🎜rrreee🎜Wertet die erste Bedingung aus, die score < Wenn <code>true
, dann ist der grade
-Wert F
. Bei false
wird der zweite Ausdruck ausgewertet, der score < 🎜🎜Dies wird fortgesetzt, bis alle Bedingungen als <code>false
ausgewertet werden, was bedeutet, dass der Wert der Note A
ist, oder bis eine der Bedingungen als true</ ausgewertet wird. code> code> und sein wahrer Wert wird <code>grade
zugewiesen. 🎜在这个实时示例中,您可以测试三元运算符如何在更多条件下工作。 如果您输入的值小于 100,则会显示“太低”消息。如果您输入的值大于 100,则会显示消息“太高”。如果输入 100,将显示“完美”消息。
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <style> #result { display: block; } button, #result { margin-top: 10px; } </style> </head> <body> <div> <label for="number">输入一个数字</label> <input type="number" name="number" id="number" /> </div> <button>提交</button> <span id="result"></span> </body> <script> const button = document.querySelector('button'); const numberElm = document.querySelector('#number'); const resultElm = document.querySelector('#result'); button.addEventListener('click', function() { resultElm.textContent = numberElm.value > 100 ? '太高' : (numberElm.value < 100 ? '太低' : '完美'); }); </script> </html>
正如本教程中的示例所解释的,JavaScript 中的三元运算符有很多用例。if...else
在许多情况下,三元运算符可以通过替换冗长的语句来增加代码的可读性。
【相关推荐:javascript视频教程、编程基础视频】
Das obige ist der detaillierte Inhalt vonEin Artikel, der die Syntax und die allgemeine Verwendung des ternären Operators in JS erklärt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!