< p >什么是
?:
(问号和冒号运算符,又称条件或“三元”)运算符,我该如何使用它?< /p >?:
(问号和冒号运算符,又称条件或“三元”)运算符,我该如何使用它?< /p >x = 9
y = 8
一元的
++x
--x
二进制
z = x + y
三元运算符
2>3 ? true : false;
2<3 ? true : false;
2<3 ? "2 is lesser than 3" : "2 is greater than 3";
这是一行代码中的if语句
。
所以
var x=1;
(x == 1) ? y="true" : y="false";
alert(y);
要评估的表达式在 ( )
中。
如果匹配为 true,则执行 ?
后面的代码。
如果匹配为 false,则执行 :
后面的代码。
使用三元运算符,编写一个程序,如果数字是偶数,则打印“Even Number”,如果数字是奇数,则打印“Odd Number”。
let a = 13;
let b = a%2!==0 ? "is Odd number" : "is Even number";
// let b = a%2==0 ? "is Even number" : "is Odd number";
console.log(a+" "+b);
输出:13是奇数
三元运算符只是一种简单的编写if else条件语句的方式。它在ReactJS中被广泛使用。
例如:
const x = 'foo';
// Instead of if else use this
x === 'foo' ? alert('True') : alert('False');
// Output
// alert box will prompt 'True'
// var firstName = 'John'; // Undefined
var lastName = 'Doe';
// if lastName or firstName is undefined, false, null or empty => fallback to empty string
lastName = lastName || '';
firstName = firstName || '';
var displayName = '';
// if lastName (or firstName) is undefined, false, null or empty
// displayName equals 'John' OR 'Doe'
// if lastName and firstName are not empty
// a space is inserted between the names
displayName = (!lastName || !firstName) ? firstName + lastName : firstName + ' ' + lastName;
// if display name is undefined, false, null or empty => fallback to 'Unnamed'
displayName = displayName || 'Unnamed';
console.log(displayName);
condition ? expr1 : expr2
function fact(n) {
if (n > 1) {
return n * fact(n-1);
} else {
return 1;
}
// we can replace the above code in a single line of code as below
//return (n != 1) ? n * fact(n - 1) : 1;
}
console.log(fact(5));
为了更好的理解,请阅读MDN文档链接
var gnamesplit = $("#txtGuarantorName").val().split(" ");
var gLastName = "";
var gFirstName = "";
if(gnamesplit.length > 0 ){
gLastName = gnamesplit[0];
}
if(gnamesplit.length > 1 ){
gFirstName = gnamesplit[1];
}
We can use below code with Jquery with minimum code
var gnamesplit = $("#txtGuarantorName").val().split(" ");
var gLastName = gnamesplit.length > 0 ? gnamesplit[0] : "";
var gFirstName = gnamesplit.length > 1 ? gnamesplit[1] : "";
$("#txtLastName").val(gLastName);
$("#txtFirstName").val(gFirstName);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div >
Guarantor Name: <input type="text" id="txtGuarantorName" value="ASP.NET Core" /><br/>
<br/>
<br/>
First Name: <input type="text" id="txtLastName" value="ASP.NET Core" />
Last Name: <input type="text" id="txtFirstName" value="ASP.NET Core" />
</div>
private module : string ='';
private page:boolean = false;
async mounted(){
if(this.module=== 'Main')
{
this.page = true;}
else{
this.page = false;
}
}
一个带有一个条件的函数可以写成以下形式。
this.page = this.module=== 'Main' ?true:false;
条件 ? 如果为真 : 如果为假
this.page = this.module === 'Main'
,因为它已经是一个布尔值了。 - konsumer (sunday == 'True') ? sun="<span class='label label-success'>S</span>" : sun="<span class='label label-danger'>S</span>";
sun = "<span class='label " + ((sunday === 'True' ? 'label-success' : 'label-danger') + "'>S</span>"
sunday ?
。应该是 sun = "<span class='label " + ((sunday === 'True' ? 'label-success' : 'label-danger') + "'>S</span>"
。 - TheRealMrCrowleysunday == 'True'
,并且sunday
实际上等于 'False'
,那么这个条件语句仍然会被评估为 true
。因为'True' == 'False'
是 true
,但是 'True' === 'False'
是 false
。 - TheRealMrCrowley
?:
(与你所写的一样,两边没有语句)——Elvis运算符。相当聪明。 - Rob Hruska