Es funktioniert immer noch in JavaScript
value = 0;
var test = (value === 0 ? 'it is zero!' : 'It is not zero.');
console.log(test);
Ausgabe
it is zero!
Frage
Hallo in PHP, ich kann das tun:
$value = 0;
$test = $value === 0 ? 'it is zero!' : 'It is not zero.';
echo $test;
Wie kann dies in JavaScript in 1 Zeile wie in PHP erfolgen, ohne den Klassiker zu verwenden? if - else if
Aussage?
Lösung
Es funktioniert immer noch in JavaScript
value = 0;
var test = (value === 0 ? 'it is zero!' : 'It is not zero.');
console.log(test);
Ausgabe
it is zero!
Andere Tipps
Das sollte funktionieren:
var value = 0;
var test = (value === 0) ? 'It is zero' : 'It is not zero!';
console.log(test);
Übrigens wird es als ternärer Operator bezeichnet. Viele Sprachen unterstützen sie.
Fast genau gleich.
var value = 0;
var test = (value === 0) ? 'it is zero!' : 'it is not zero';
console.log(test);
Ausgabe:
"it is zero!"
JavaScript unterstützt auch ternäre Operatoren.
https://developer.mozilla.org/en-us/docs/web/javascript/reference/operators/conditional_operator
(value == 0)?alert('it is zero!'):alert('It is not zero.');
Es gibt keinen solchen großen Unterschied, außer dass Ihr $ Var wird.
Ich bevorzuge immer ternär für Inline. Ich persönlich finde es persönlich lesbarer.
var test =(value===0)?'it is zero!':'It is not zero.';
console.log("test check==="+test)
Ich kann dir 1 besser in JS machen:
var value = 0;
console.log(value === 0 ? 'It is zero!' : 'it is not zero');
Oder noch kürzer:
console.log('it is ' + ((value = 0) === 0 ? '':'not ') + 'zero!');
Knall, eine Zeile für Ihre 3 PHP -Linien. Beachten Sie das, dies Wille entstehen entweder in einem Fehler, der (im strengen Modus) oder eine implizite globale Variable erstellt wird, wenn value
ist nicht vorhanden.
Wenn jedoch die Variable value
Es existiert bereits, alles funktioniert vollkommen in Ordnung, und das Verhalten ist, wie Sie es erwarten würden:
var value = 0;
console.log('it is ' + ((value = value || 0) === 0 ? '':'not ') + 'zero!');
//logs it is zero
value = 123;
console.log('it is ' + ((value = value || 0) === 0 ? '':'not ') + 'zero!');
//logs it is not zero
Ich habe dies mit einem iife getestet:
(function(value)
{//logs it is zero
console.log('it is ' + ((value = value || 0) === 0 ? '':'not ') + 'zero!');
}());
(function(value)
{//logs it is not zero
console.log('it is ' + ((value = value || 0) === 0 ? '':'not ') + 'zero!');
}(123));
(function(value)
{//logs it is zero
console.log('it is ' + ((value = value || 0) === 0 ? '':'not ') + 'zero!');
}(0));
Um den Code aus Loggin zu vermeiden it is zero
Wenn der Wert undefiniert oder falsy ist:
(function(value)
{//coerce to numbner
console.log('it is ' + (value === 0 || value === '0' ? '':'not ') + 'zero!');
}());
Dies wird nur protokolliert it is zero
wenn value
entweder '0'
oder 0
. Es wird nicht für Werte wie false
, undefined
, null
...