什么是?:(问号和冒号运算符。条件或“三元”)操作符,我如何使用它?
当前回答
我们可以使用Jquery以及长度的例子如下:
假设我们有一个GuarantorName文本框,它有值,并且想要获取姓和名-它可能是空的。 所以不是
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>
其他回答
它叫做三元算符
tmp = (foo==1 ? true : false);
z = (x == y ? 1 : 2);
等于
if (x == y)
z = 1;
else
z = 2;
当然,除了,它更短。
这是if-else语句的一行简写。它叫做条件算子
下面是一个可以用条件操作符缩短的代码示例:
var userType;
if (userIsYoungerThan18) {
userType = "Minor";
} else {
userType = "Adult";
}
if (userIsYoungerThan21) {
serveDrink("Grape Juice");
} else {
serveDrink("Wine");
}
这个可以用?:来缩短,像这样:
var userType = userIsYoungerThan18 ? "Minor" : "Adult";
serveDrink(userIsYoungerThan21 ? "Grape Juice" : "Wine");
像所有表达式一样,条件操作符也可以作为带有副作用的独立语句使用,尽管这在简化之外是不常见的:
userIsYoungerThan21 ? serveGrapeJuice() : serveWine();
它们甚至可以被捆绑:
serveDrink(userIsYoungerThan4 ? 'Milk' : userIsYoungerThan21 ? 'Grape Juice' : 'Wine');
但是要小心,否则你最终会得到像这样令人费解的代码:
var k = a ? (b ? (c ? d : e) : (d ? e : f)) : f ? (g ? h : i) : j;
1通常被称为“三元操作符”,但实际上它只是一个三元操作符(接受三个操作数的操作符)。不过,这是JavaScript目前仅有的一个功能。
它叫做三元算符。为了了解更多信息,我回答了另一个问题:
如何编写不带else的IF else语句
三元运算符只是一种写if else条件的简单方法。它在ReactJS中被广泛使用。
例如:
Const x = 'foo'; //用这个代替if else X === 'foo' ?alert('True'): alert('False'); / /输出 //提示框将提示'True'