JavaScript مضمّن إذا كان المتغير تعيين قيمة مثل PHP [مغلق

StackOverflow https://stackoverflow.com/questions/19834074

سؤال

مرحبًا في 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...

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top