Что делает запятая в выражениях JavaScript?
Если я использую:
1.09 * 1; // returns "1.09"
Но если я использую:
1,09 * 1; // returns "9"
Я знаю, что 1,09 не является числом.
Что делает запятая в последнем фрагменте кода?
Дополнительные примеры
if (0,9) alert("ok"); // alert
if (9,0) alert("ok"); // don't alert
alert(1); alert(2); alert(3); // 3 alerts
alert(1), alert(2), alert(3); // 3 alerts too
alert("2",
foo = function (param) {
alert(param)
},
foo('1')
)
foo('3'); // alerts 1, 2 and 3
Ответы
Ответ 1
Оператор запятой оценивает оба своих операнда (слева направо) и возвращает значение второго операнда.
Источник: https://developer.mozilla.org/en/JavaScript/Reference/Operators/Special_Operators/Comma_Operator
Например, выражение 1,2,3,4,5
оценивает до 5
. Очевидно, оператор запятой полезен только для операций с побочными эффектами.
console.log(1,2,3,4,5);
console.log((1,2,3,4,5));
Ответ 2
Еще несколько для рассмотрения:
console.log((0, 9));
console.log((9, 0));
console.log(("foo", "bar"));
Ответ 3
Посмотрите здесь - запятая обозначает несколько выражений/операторов. Например, в вашем коде вы можете использовать такую строку:
var a=0, b=0, c=0;
Это объявит все три переменные без записи:
var a=0;
var b=0;
var c=0;
Надеюсь, что это поможет.
Ответ 4
Оператор запятой оценивает как его операнды (слева направо) и возвращает значение second
операнд.Дел >
fooobar.com/questions/1153/...
Это должно быть так!
Оператор запятой оценивает каждый из своих операндов (слева направо) и возвращает значение операнда last
.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Comma_Operator
Ответ 5
Добавление/изменение свойств объекта и возврат его в одной строке - это возможный прецедент:
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]
// }