لا يزال يعمل في JavaScript
value = 0;
var test = (value === 0 ? 'it is zero!' : 'It is not zero.');
console.log(test);
انتاج |
it is zero!
سؤال
مرحبًا في PHP يمكنني القيام بذلك:
$value = 0;
$test = $value === 0 ? 'it is zero!' : 'It is not zero.';
echo $test;
كيف يمكن القيام بذلك في JavaScript في سطر واحد كما في PHP دون استخدام الكلاسيكية if - else if
بيان؟
المحلول
لا يزال يعمل في JavaScript
value = 0;
var test = (value === 0 ? 'it is zero!' : 'It is not zero.');
console.log(test);
انتاج |
it is zero!
نصائح أخرى
هذا يجب أن يعمل:
var value = 0;
var test = (value === 0) ? 'It is zero' : 'It is not zero!';
console.log(test);
بالمناسبة ، يطلق عليه المشغل الثلاثية. العديد من اللغات تدعمهم.
تقريبا بالضبط نفس الشيء.
var value = 0;
var test = (value === 0) ? 'it is zero!' : 'it is not zero';
console.log(test);
انتاج:
"it is zero!"
يدعم JavaScript أيضًا المشغلين الثلاثية.
https://developer.mozilla.org/en-us/docs/web/javaScript/Reference/Operators/Conditional_Operator
(value == 0)?alert('it is zero!'):alert('It is not zero.');
لا يوجد فرق كبير مثل أن $ الخاص بك يصبح var.
أنا أفضل دائمًا Ternary لـ INLINE.I أنا شخصياً أجدها أكثر قابلية للقراءة.
var test =(value===0)?'it is zero!':'It is not zero.';
console.log("test check==="+test)
العرض التوضيحي: http://jsfiddle.net/jayeshjain24/eflyf/
يمكنني أن أفعل لك 1 أفضل في JS:
var value = 0;
console.log(value === 0 ? 'It is zero!' : 'it is not zero');
أو حتى أقصر:
console.log('it is ' + ((value = 0) === 0 ? '':'not ') + 'zero!');
الانفجار ، سطر واحد لخطوط PHP 3. لاحظ ذلك ، هذا إرادة النتيجة إما في خطأ يتم طرحه (في الوضع الصارم) ، أو يتم إنشاء متغير عالمي ضمني ، إذا value
غير موجود.
ومع ذلك ، إذا كان المتغير value
موجود بالفعل ، كل شيء يعمل بشكل جيد ، والسلوك كما تتوقع أن يكون:
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
لقد اختبرت هذا باستخدام iife:
(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));
لتجنب الرمز من Loggin it is zero
عندما تكون القيمة غير محددة ، أو falsy:
(function(value)
{//coerce to numbner
console.log('it is ' + (value === 0 || value === '0' ? '':'not ') + 'zero!');
}());
هذا سوف يسجل فقط it is zero
إذا value
اما '0'
أو 0
. لن مثل قيم مثل false
, undefined
, null
...