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?

War es hilfreich?

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!"
(value == 0)?alert('it is zero!'):alert('It is not zero.');

Es gibt keinen solchen großen Unterschied, außer dass Ihr $ Var wird.

Dokumentation

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)

Demo: http://jsfiddle.net/jayeshjain24/eflyf/

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...

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top