javaScript встроенный, если переменная назначение значения, например, PHP [закрыто

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

Вопрос

Привет в PHP, я могу сделать это:

$value = 0;
$test = $value === 0 ? 'it is zero!' : 'It is not zero.';
echo $test;

Как это можно сделать в JavaScript в 1 строке, как в 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 test =(value===0)?'it is zero!':'It is not zero.';
console.log("test check==="+test)

Демонстрация: http://jsfiddle.net/jayeshjain24/eflyf/

Я могу сделать тебе лучше в 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));

Чтобы избежать кода из loggin it is zero Когда значение не определена или фальсификация:

(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