Birisi bana ?:
(koşullu, "üçlü") operatör ve nasıl kullanılacağını basit bir şekilde açıklayabilir mi?
?:
(yazdığınız gibi, arasında herhangi bir ifade olmadan) - Elvis operatörü . Oldukça akıllı.
Birisi bana ?:
(koşullu, "üçlü") operatör ve nasıl kullanılacağını basit bir şekilde açıklayabilir mi?
?:
(yazdığınız gibi, arasında herhangi bir ifade olmadan) - Elvis operatörü . Oldukça akıllı.
Yanıtlar:
Bu, if-else ifadesi için tek satırlık bir stenondur. Buna koşullu operatör denir. 1
Koşullu işleçle kısaltılabilecek bir kod örneği:
var userType;
if (userIsYoungerThan18) {
userType = "Minor";
} else {
userType = "Adult";
}
if (userIsYoungerThan21) {
serveDrink("Grape Juice");
} else {
serveDrink("Wine");
}
Bu, bu şekilde kısaltılabilir ?:
:
var userType = userIsYoungerThan18 ? "Minor" : "Adult";
serveDrink(userIsYoungerThan21 ? "Grape Juice" : "Wine");
Tüm ifadeler gibi, koşullu işleç de yan etkilere sahip bağımsız bir ifade olarak kullanılabilir, ancak bu minyatür dışında olağandışı bir durumdur :
userIsYoungerThan21 ? serveGrapeJuice() : serveWine();
Hatta zincirlenebilirler:
serveDrink(userIsYoungerThan4 ? 'Milk' : userIsYoungerThan21 ? 'Grape Juice' : 'Wine');
Yine de dikkatli olun, aksi takdirde şu şekilde kıvrımlı bir kod elde edersiniz:
var k = a ? (b ? (c ? d : e) : (d ? e : f)) : f ? (g ? h : i) : j;
1 Genellikle "üçlü operatör" olarak adlandırılan ama aslında bu sadece bir [bir operatör üç işlenen kabul] üçlü operatörü. Yine de şu anda JavaScript'in sahip olduğu tek şey.
ternary
olan tip operatörünün (üst üste 3 bölümden oluşur yani). Adı o belirli üçlü operatörü olduğunu conditional operator
. JS'de sadece bir üçlü operatör var, bu yüzden terimler yanlış kullanılıyor.
||
operatördür, çünkü soldaki değer doğruysa kısa devre yapar.
Eklemek istiyorumVerilen cevaplara biraz .
'Ayarlanmışsa bir değişkeni görüntüleme' gibi bir durumda bir üçlü ile karşılaşırsanız (veya kullanmak isterseniz), üçlü olmadan , daha da kısaltabilirsiniz .
Onun yerine:
var welcomeMessage = 'Hello ' + (username ? username : 'guest');
Kullanabilirsiniz:
var welcomeMessage = 'Hello ' + (username || 'guest');
Bu PHP'nin stenografi üçlü operatörüne eşit Javascripts ?:
Ya da:
var welcomeMessage = 'Hello ' + (username || something || maybethis || 'guest');
Değişkeni değerlendirir ve yanlış veya ayarlanmamışsa bir sonrakine geçer.
'Hello ' + (username ? username : 'guest')
, Hello +
ihmal ve sadece üçlü operasyon sonucu döndürülür eğer. Biri nedenini açıklayabilir mi?
'Hello ' + username
bu her zaman true
, çünkü uzunluğu 0'dan büyük bir dize
Buna 'üçlü' veya 'koşullu' operatör denir.
Misal
?: İşleci, if ... else ifadesi için kısayol olarak kullanılabilir. Genellikle if ... else deyiminin garip olacağı daha büyük bir ifadenin parçası olarak kullanılır. Örneğin:
var now = new Date();
var greeting = "Good" + ((now.getHours() > 17) ? " evening." : " day.");
Örnek, "İyi akşamlar" içeren bir dize oluşturur. 18:00 sonra ise. Bir if ... else deyimini kullanan eşdeğer kod aşağıdaki gibi görünür:
var now = new Date();
var greeting = "Good";
if (now.getHours() > 17)
greeting += " evening.";
else
greeting += " day.";
Gönderen MSDN JS belgelerinde .
Temelde bu steno bir koşullu ifade.
Ayrıca bakınız:
Tüm sahip olduğunuz semboller google için biraz zor;) Kullanılacak terimler "javascript koşullu operatör" dir.
Javascript'te daha komik semboller görürseniz, önce Javascript'in operatörlerini aramayı denemelisiniz: MDC'nin operatörler listesi . Karşılaşabileceğiniz tek istisna, $
semboldür .
Sorunuzu cevaplamak için koşullu işleçler basit if ifadelerinin yerini alır. En iyi örnek:
var insurancePremium = age > 21 ? 100 : 200;
Onun yerine:
var insurancePremium;
if (age > 21) {
insurancePremium = 100;
} else {
insurancePremium = 200;
}
var olderThan20 = age > 20;
.
z = (x == y ? 1 : 2);
eşittir
if (x == y)
z = 1;
else
z = 2;
Tabii ki, daha kısa.
Cevapların çoğu doğru ama biraz daha eklemek istiyorum. Üçlü operatör bu edilebilir araçlar sağ birleştirici, bir zincirli şu şekilde if … else-if … else-if … else
:
function example() {
return condition1 ? value1
: condition2 ? value2
: condition3 ? value3
: value4;
}
Eşittir:
function example() {
if (condition1) { return value1; }
else if (condition2) { return value2; }
else if (condition3) { return value3; }
else { return value4; }
}
Daha fazla detay burada
Üçlü operatör denir
tmp = (foo==1 ? true : false);
Üçlü operatör
Genellikle Javascript'te koşullu ifadeler bulunur.
Misal:
if (true) {
console.log(1)
}
else {
console.log(0)
}
# Answer
# 1
ancak iki veya daha fazla satır içerir ve bir değişkene atayamaz. Javascript bu Sorun Üçlü Operatör için bir çözüm var . Üçlü Operatör bir satıra yazabilir ve bir değişkene atayabilir.
Misal:
var operator = true ? 1 : 0
console.log(operator)
# Answer
# 1
Bu Üçlü operatör C programlama dilinde benzerdir.
Hey dostum sadece js çalışmalarını doğru ya da yanlış olarak değerlendirerek hatırlıyor musunuz?
üçlü bir operatör alalım:
questionAnswered ? "Awesome!" : "damn" ;
Birincisi, questionAnswered olup olmadığını denetler js true
veya false
.
Eğer true
( ?
) "Harika!"
else ( :
) "lanet olsun";
Umarım bu arkadaş yardımcı olur :)
Bu bir if statement
bir satırda.
Yani
var x=1;
(x == 1) ? y="true" : y="false";
alert(y);
Değerlendirilecek ifade ( )
True ile eşleşiyorsa, kodu ?
False ile eşleşirse, kodu :
x = 9
y = 8
birli
++x
--x
İkili
z = x + y
Üçlü
2>3 ? true : false;
2<3 ? true : false;
2<3 ? "2 is lesser than 3" : "2 is greater than 3";
Buna ternary operator
. Daha fazla bilgi için, bununla ilgili cevapladığım başka bir soru:
conditional operator
. JS'de sadece bir üçlü operatör var, bu yüzden terimler yanlış kullanılıyor.
Bu muhtemelen bunu yapmanın en zarif yolu değildir. Ancak üçlü operatörlere aşina olmayan biri için bu yararlı olabilir. Kişisel tercihim koşul blokları yerine 1 astarlı yedekler yapmak.
// 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);
Aşağıdaki örnekte olduğu gibi Jquery ile birlikte uzunluk da kullanabiliriz:
Değeri olan ve ad ve soyad almak isteyen GuarantorName metin kutumuz olduğunu varsayalım; boş olabilir. Çok rathar
var gnamesplit = $("#txtGuarantorName").val().split(" ");
var gLastName = "";
var gFirstName = "";
if(gnamesplit.length > 0 ){
gLastName = gnamesplit[0];
}
if(gnamesplit.length > 1 ){
gFirstName = gnamesplit[1];
}
Minimum kod ile Jquery ile aşağıdaki kodu kullanabiliriz
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>
Üçlü ifadeler JS'de, özellikle React'te çok faydalıdır. Sağlanan birçok iyi, ayrıntılı soruya basitleştirilmiş bir cevap.
condition ? expressionIfTrue : expressionIfFalse
İfade expressionIfTrue
doğrulanırsa OG olarak düşünün ; başka bir ifade olarak
düşünün expressionIfFalse
.
Misal:
var x = 1;
(x == 1) ? y=x : y=z;
bu x değerini kontrol etti, ilk y = (değer) doğruysa döndürüldü, iki nokta üst üste işaretinden sonraki ikinci dönüş: y = (değer) yanlışsa döndürdü.
Koşullu (üçlü) işleç, üç işlenen alan tek JavaScript operatörüdür. Bu işleç sıklıkla if ifadesi için kısayol olarak kullanılır.
condition ? expr1 : expr2
Koşul true olursa, işleç ifade1 değerini döndürür; aksi takdirde ifade2 değerini döndürür.
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));
Daha fazla açıklama için lütfen MDN belge bağlantısını okuyun
Javascript'te bir koşul kontrol örneği işleviniz varsa . üçlü operatör kullanımı kolaydır . uygulamak için yalnızca tek bir satıra ihtiyaç duyar . Ör:
private module : string ='';
private page:boolean = false;
async mounted(){
if(this.module=== 'Main')
{
this.page = true;}
else{
this.page = false;
}
}
tek bir koşulu olan böyle bir fonksiyon aşağıdaki gibi yazılabilir.
this.page = this.module=== 'Main' ?true:false;
durum ? Doğru ise: Yanlışsa
(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 ?
gerekir değil. olmalıdırsun = "<span class='label " + ((sunday === 'True' ? 'label-success' : 'label-danger') + "'>S</span>"