Cet article discutera de la syntaxe de l'opérateur ternaire en JavaScript et de quelques utilisations courantes. J'espère qu'il vous sera utile ! L'
opérateur ternaire (également connu sous le nom d'opérateur conditionnel) peut être utilisé pour effectuer des vérifications conditionnelles en ligne au lieu d'utiliser une instruction if...else
. Cela rend le code plus court et plus lisible. Il peut être utilisé pour attribuer une valeur à une variable en fonction d'une condition ou pour exécuter une expression en fonction d'une condition. 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">Syntaxe🎜</h2>🎜L'opérateur ternaire accepte trois opérandes ; c'est le seul opérateur en JavaScript qui peut faire cela. Vous fournissez une condition à tester, suivie d'un point d'interrogation, puis de deux expressions séparées par des deux-points. Si la condition est considérée comme vraie, la première expression est exécutée ; si elle est considérée comme fausse, l'expression finale est exécutée. 🎜🎜Il s'utilise au format suivant : 🎜<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
est la condition à tester. Si sa valeur est considérée comme true
, expr1
est exécuté. Sinon, si sa valeur est considérée comme false
, expr2
est exécuté. 🎜🎜expr1
et expr2
sont des expressions. Il peut s'agir de variables, d'appels de fonction ou même d'autres conditions. 🎜🎜Par exemple : 🎜rrreeeif...else
, cela rendra le code plus long et moins lisible. Par exemple : 🎜rrreee🎜Dans cet exemple de code, vous définissez d'abord la variable message
. Vous utilisez ensuite l'instruction if...else
pour déterminer la valeur de la variable. 🎜🎜Cela peut être fait simplement en une seule ligne en utilisant l'opérateur ternaire : 🎜rrreeeif...else
suivante : 🎜rrreee🎜Cela peut être fait en une ligne en utilisant l'opérateur ternaire Terminé : 🎜rrreee🎜Si feedback
a la valeur oui
, alors sayThankYou
sera appelé et la fonction sera exécutée . Sinon, la fonction saySorry
sera appelée et exécutée. 🎜null
en passant le nom de la variable à la place de l'opérande conditionnel. non défini
🎜🎜Ceci est particulièrement utile lorsque la variable est un objet. Une erreur se produit si vous essayez d'accéder à une propriété sur un objet qui est en réalité null
ou non défini
. Vérifier en premier que l'objet est réellement défini peut vous aider à éviter les erreurs. 🎜🎜Par exemple : 🎜rrreee🎜Dans la première partie de ce bloc de code, book
est un objet avec deux propriétés - name
et works
in Lors de l'utilisation de l'opérateur ternaire sur book
, il vérifie s'il n'est pas null
ou undefined
. Si ce n'est pas le cas - ce qui signifie qu'elle a une valeur - name
alors la propriété est accessible et affichée sur la console. Sinon, s'il est vide, 张三
affiche la console. 🎜🎜Comme book
n'est pas null
, le titre du livre sera enregistré dans la console. Cependant, dans la deuxième partie, lorsque la même condition est appliquée, la condition dans l'opérateur ternaire échoue car book
est null
. Par conséquent, "Zhang San" sort la console. 🎜if...else if...else
. 🎜🎜Par exemple, la valeur d'une variable peut dépendre de plusieurs conditions. Cela peut être fait en utilisant if...else if...else
: 🎜rrreee🎜Dans ce bloc de code, vous testez plusieurs conditions de la variable score
pour déterminer la lettre de la note variable. 🎜🎜Ces mêmes conditions peuvent être exécutées à l'aide de l'opérateur ternaire comme suit : 🎜rrreee🎜Évalue la première condition, qui est score <50
. Si true
, alors la valeur grade
est F
. Si false
, la deuxième expression est évaluée, qui est score < 🎜🎜Cela continue jusqu'à ce que toutes les conditions soient évaluées à <code>false
, ce qui signifie que la valeur de la note sera A
, ou jusqu'à ce que l'une des conditions soit évaluée à true</ code> code> et sa vraie valeur est attribuée à <code>grade
. 🎜在这个实时示例中,您可以测试三元运算符如何在更多条件下工作。 如果您输入的值小于 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视频教程、编程基础视频】
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!