Ai đó có thể vui lòng giải thích cho tôi bằng những từ đơn giản ?:
toán tử (có điều kiện, "ternary") là gì và làm thế nào để sử dụng nó?
?:
(như bạn đã viết, không có câu lệnh nào giữa) - toán tử Elvis . Khá thông minh.
Ai đó có thể vui lòng giải thích cho tôi bằng những từ đơn giản ?:
toán tử (có điều kiện, "ternary") là gì và làm thế nào để sử dụng nó?
?:
(như bạn đã viết, không có câu lệnh nào giữa) - toán tử Elvis . Khá thông minh.
Câu trả lời:
Đây là một tốc ký một dòng cho một câu lệnh if-other. Nó được gọi là toán tử có điều kiện. 1
Dưới đây là một ví dụ về mã có thể được rút ngắn với toán tử điều kiện:
var userType;
if (userIsYoungerThan18) {
userType = "Minor";
} else {
userType = "Adult";
}
if (userIsYoungerThan21) {
serveDrink("Grape Juice");
} else {
serveDrink("Wine");
}
Điều này có thể được rút ngắn với ?:
như vậy:
var userType = userIsYoungerThan18 ? "Minor" : "Adult";
serveDrink(userIsYoungerThan21 ? "Grape Juice" : "Wine");
Giống như tất cả các biểu thức, toán tử điều kiện cũng có thể được sử dụng như một câu lệnh độc lập với các tác dụng phụ, mặc dù điều này là bất thường bên ngoài việc thu nhỏ:
userIsYoungerThan21 ? serveGrapeJuice() : serveWine();
Họ thậm chí có thể bị xiềng xích:
serveDrink(userIsYoungerThan4 ? 'Milk' : userIsYoungerThan21 ? 'Grape Juice' : 'Wine');
Tuy nhiên, hãy cẩn thận, hoặc bạn sẽ kết thúc với mã phức tạp như thế này:
var k = a ? (b ? (c ? d : e) : (d ? e : f)) : f ? (g ? h : i) : j;
1 Thường được gọi là "toán tử ternary", nhưng thực tế nó chỉ là một toán tử ternary [một toán tử chấp nhận ba toán hạng]. Tuy nhiên, đây là mã JavaScript duy nhất hiện có.
ternary
là loại toán tử (tức là nó có 3 phần). Tên của toán tử ternary cụ thể đó là conditional operator
. Chỉ có một toán tử tạm thời trong JS để các thuật ngữ bị sử dụng sai.
||
toán tử, vì nó bị đoản mạch nếu giá trị bên trái là trung thực.
Tôi muốn thêm một số câu trả lời.
Trong trường hợp bạn gặp phải (hoặc muốn sử dụng) một con chim nhạn trong tình huống như 'hiển thị một biến nếu nó được đặt, nếu không ...', bạn có thể làm cho nó ngắn hơn, mà không cần một con chim nhạn .
Thay vì:
var welcomeMessage = 'Hello ' + (username ? username : 'guest');
Bạn có thể dùng:
var welcomeMessage = 'Hello ' + (username || 'guest');
Đây là Javascripts tương đương với toán tử viết tắt của PHP ?:
Hoặc thậm chí:
var welcomeMessage = 'Hello ' + (username || something || maybethis || 'guest');
Nó đánh giá biến và nếu nó sai hoặc không được đặt, nó sẽ chuyển sang biến tiếp theo.
'Hello ' + (username ? username : 'guest')
, Hello +
nếu bị bỏ qua và chỉ kết quả của hoạt động ternary được trả lại. Bất cứ ai có thể giải thích tại sao?
'Hello ' + username
, luôn luôn true
, bởi vì đó là một chuỗi có độ dài lớn hơn 0.
Nó được gọi là toán tử 'ternary' hoặc 'có điều kiện'.
Thí dụ
Toán tử ?: Có thể được sử dụng làm lối tắt cho câu lệnh if ... other. Nó thường được sử dụng như một phần của biểu thức lớn hơn trong đó một câu lệnh if ... khác sẽ gây khó xử. Ví dụ:
var now = new Date();
var greeting = "Good" + ((now.getHours() > 17) ? " evening." : " day.");
Ví dụ này tạo ra một chuỗi chứa "Chào buổi tối." nếu là sau 6 giờ tối. Mã tương đương sử dụng câu lệnh if ... other sẽ như sau:
var now = new Date();
var greeting = "Good";
if (now.getHours() > 17)
greeting += " evening.";
else
greeting += " day.";
Từ tài liệu MSDN JS .
Về cơ bản đó là một tuyên bố có điều kiện tốc ký.
Cũng thấy:
Google hơi khó khăn khi tất cả những gì bạn có là biểu tượng;) Các thuật ngữ để sử dụng là "toán tử điều kiện javascript".
Nếu bạn thấy bất kỳ biểu tượng hài hước nào nữa trong Javascript, trước tiên bạn nên thử tìm kiếm các toán tử của Javascript: danh sách các toán tử của MDC . Một ngoại lệ bạn có thể gặp phải là $
biểu tượng .
Để trả lời câu hỏi của bạn, các toán tử có điều kiện thay thế các câu lệnh if đơn giản. Một ví dụ là tốt nhất:
var insurancePremium = age > 21 ? 100 : 200;
Thay vì:
var insurancePremium;
if (age > 21) {
insurancePremium = 100;
} else {
insurancePremium = 200;
}
var olderThan20 = age > 20;
thay thế.
z = (x == y ? 1 : 2);
tương đương với
if (x == y)
z = 1;
else
z = 2;
ngoại trừ, tất nhiên, nó ngắn hơn.
Hầu hết các câu trả lời đều đúng nhưng tôi muốn thêm ít hơn. Các nhà điều hành ternary là phải kết hợp, mà có nghĩa là nó có thể được xích theo cách sau if … else-if … else-if … else
:
function example() {
return condition1 ? value1
: condition2 ? value2
: condition3 ? value3
: value4;
}
Tương đương với:
function example() {
if (condition1) { return value1; }
else if (condition2) { return value2; }
else if (condition3) { return value3; }
else { return value4; }
}
Chi tiết tại đây
Nó được gọi là toán tử ternary
tmp = (foo==1 ? true : false);
Toán tử Ternary
Thông thường chúng ta có các câu điều kiện trong Javascript.
Thí dụ:
if (true) {
console.log(1)
}
else {
console.log(0)
}
# Answer
# 1
nhưng nó chứa hai hoặc nhiều dòng và không thể gán cho một biến. Javascript có một giải pháp cho vấn đề này Toán tử Ternary . Toán tử Ternary có thể viết trong một dòng và gán cho một biến.
Thí dụ:
var operator = true ? 1 : 0
console.log(operator)
# Answer
# 1
Toán tử Ternary này tương tự trong ngôn ngữ lập trình C.
Hey mate chỉ cần nhớ js hoạt động bằng cách đánh giá là đúng hoặc sai, phải không?
chúng ta hãy lấy một toán tử ternary:
questionAnswered ? "Awesome!" : "damn" ;
Đầu tiên, js kiểm tra xem câu hỏi có true
hay khôngfalse
.
nếu true
(?
) bạn sẽ nhận được "Tuyệt vời!"
khác ( :
) bạn sẽ nhận được "chết tiệt";
Hy vọng điều này sẽ giúp bạn :)
Đó là một if statement
tất cả trên một dòng.
Vì thế
var x=1;
(x == 1) ? y="true" : y="false";
alert(y);
Biểu thức được đánh giá là trong ( )
Nếu nó đúng, thực thi mã sau ?
Nếu nó khớp sai, thực thi mã sau :
x = 9
y = 8
đơn phương
++x
--x
Nhị phân
z = x + y
Chim nhạn
2>3 ? true : false;
2<3 ? true : false;
2<3 ? "2 is lesser than 3" : "2 is greater than 3";
Nó được gọi là ternary operator
. Để biết thêm thông tin, đây là một câu hỏi khác tôi đã trả lời về điều này:
conditional operator
. Chỉ có một toán tử tạm thời trong JS để các thuật ngữ bị sử dụng sai.
Đây có lẽ không phải là cách thanh lịch nhất để làm điều này. Nhưng đối với một người không quen thuộc với các nhà khai thác ternary, điều này có thể hữu ích. Sở thích cá nhân của tôi là làm dự phòng 1 lớp thay vì khối điều kiện.
// 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);
Chúng ta có thể sử dụng với Jquery cũng như độ dài như ví dụ dưới đây:
Giả sử chúng ta có hộp văn bản ProvorName có giá trị và muốn lấy tên và họ - nó có thể là null. Vì vậy, rathar hơn
var gnamesplit = $("#txtGuarantorName").val().split(" ");
var gLastName = "";
var gFirstName = "";
if(gnamesplit.length > 0 ){
gLastName = gnamesplit[0];
}
if(gnamesplit.length > 1 ){
gFirstName = gnamesplit[1];
}
Chúng tôi có thể sử dụng mã dưới đây với Jquery với mã tối thiểu
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>
Các biểu thức ternary rất hữu ích trong JS, đặc biệt là React. Đây là một câu trả lời đơn giản cho nhiều câu hỏi hay, chi tiết được cung cấp.
condition ? expressionIfTrue : expressionIfFalse
Hãy nghĩ về expressionIfTrue
OG nếu câu lệnh hiển thị đúng;
nghĩ về expressionIfFalse
như tuyên bố khác.
Thí dụ:
var x = 1;
(x == 1) ? y=x : y=z;
cái này kiểm tra giá trị của x, giá trị y = (giá trị) đầu tiên được trả về nếu đúng, giá trị thứ hai sau dấu hai chấm: trả về y = (giá trị) nếu sai.
Toán tử có điều kiện (ternary) là toán tử JavaScript duy nhất có ba toán hạng. Toán tử này thường được sử dụng làm lối tắt cho câu lệnh if.
condition ? expr1 : expr2
Nếu điều kiện là đúng, toán tử trả về giá trị của expr1; mặt khác, nó trả về giá trị của 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));
Để làm rõ hơn xin vui lòng đọc liên kết tài liệu MDN
Nếu bạn có một chức năng kiểm tra điều kiện trong javascript . thật dễ dàng để sử dụng toán tử ternary . mà sẽ chỉ cần một dòng duy nhất để thực hiện. Ví dụ:
private module : string ='';
private page:boolean = false;
async mounted(){
if(this.module=== 'Main')
{
this.page = true;}
else{
this.page = false;
}
}
một hàm như thế này với một điều kiện có thể được viết như sau.
this.page = this.module=== 'Main' ?true:false;
tình trạng ? nếu đúng: nếu sai
(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 ?
.it nên làsun = "<span class='label " + ((sunday === 'True' ? 'label-success' : 'label-danger') + "'>S</span>"