Почему & gt; 3,2,1 оценить до 1 в Javascript [дубликат]

Попробуйте это

$username = $_POST['username'];
$password = $_POST['password'];
$result = mysqli_query('SELECT * FROM Users WHERE UserName LIKE $username');

if($result){
while($row = mysqli_fetch_array($result))
{
    echo $row['FirstName'];
}
}
70
задан 22 revs, 8 users 80% 27 January 2016 в 22:46
поделиться

5 ответов

Оператор запятой оценивает оба своих операнда (слева направо) и возвращает значение второго операнда.

Источник: https://developer.mozilla.org/en/JavaScript/Reference/Operators/Special_Operators/Comma_Operator

Например, выражение 1,2,3,4,5 имеет значение 5. Очевидно, что оператор запятой полезен только для операций с побочными эффектами.

70
ответ дан Yuval Adam 31 August 2018 в 22:22
поделиться

Добавление / изменение свойств объекта и его возврат в одну строку - это возможный случай использования:

console.log(
  ((x) => (o = {biggerCond: r => r >= x},
           o.r5 = Array.from(window.crypto.getRandomValues(new Uint16Array(5))),
           o.isAnyBigger = o.r5.some(o.biggerCond),
           o.bigger = o.isAnyBigger ? o.r5.filter(o.biggerCond) : [x], o )
  )(5e4)
);
// Example
// {
//   bigger: [58414, 56500, 63397],
//   isAnyBigger: true,
//   isBiggerCond: r => r >= x,
//   r5: [58414, 12015, 56500, 63397, 43861]
// }

Вышеуказанное анонимная функция возвращает объект со случайными значениями, превышающими входное значение, или, если их нет, с самим входным значением в массиве, содержащимся в свойстве bigger.

Это все еще синтаксический сахар (например, функции стрелок ), но это сокращает количество строк ... Интересно, обнаруживают ли некоторые JS-министры и автоматически корректируют код аналогичным образом. Запустите его в консоли:

((x)=>(o={biggerCond:r=>r>=x},o.r5=Array.from(window.crypto.getRandomValues(new Uint16Array(5))),o.isAnyBigger=o.r5.some(o.biggerCond),o.bigger=o.isAnyBigger?o.r5.filter(o.biggerCond):[x],o))(5e4)
0
ответ дан CPHPython 31 August 2018 в 22:22
поделиться

Еще несколько предупреждений:

alert((0, 9));
alert((9, 0));
alert(("foo", "bar"));

Кроме того, посмотрите, что Firebug console , если вы хотите попробовать это в интерактивном режиме.

5
ответ дан Douglas 31 August 2018 в 22:22
поделиться

Посмотрите здесь - запятая обозначает несколько выражений / операторов. Например, в вашем коде вы можете использовать такую ​​строку:

var a=0, b=0, c=0;

Это объявило бы все три переменные без записи:

var a=0;
var b=0;
var c=0;

Надеюсь, что это поможет.

4
ответ дан Drew Gaynor 31 August 2018 в 22:22
поделиться
Оператор запятой оценивает оба своих операнда (слева направо) и возвращает значение операнда second.

https://stackoverflow.com/a/3561056/5934465

Это должно быть так!

Оператор запятой оценивает каждый из своих операндов (слева направо) и возвращает значение операнда last.

https: //developer.mozilla .org / EN-US / Docs / Web / JavaScript / Справочник / Операторы / Comma_Operator

2
ответ дан xgqfrms 31 August 2018 в 22:22
поделиться