Я могу сделать вас 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!');
взрыва, одну линию для ваших 3 PHP строк. Обратите внимание, что этот будет результатом либо в случае ошибки (в строгом режиме), либо в результате создания неявной глобальной переменной, если 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));
Чтобы избежать код из 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
...
Тройная является просто коротким для 'если - else', в основном ... –
Есть несколько мест в Интернете, где вы можете увидеть [ большой список операторов Javascript] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Expressions_and_Operators) ... – nnnnnn