Использование запятых по сравнению с точкой с запятой в JavaScript?
Учитывая следующий код
var fn = function () {
var x = 'x',
y = 'y';
this.a = 'a',
this.b = 'b',
this.c = 'c';
this.d = 'd',
this.e = 'e';
}
Вы можете видеть, что есть смесь обоих.
Какая польза от использования того или другого?
Я понимаю, что точка с запятой заканчивается. И запятая должна использоваться для объединения нескольких объявлений.
Так можно ли сказать, что с этим примером тогда должны быть только две точки с запятой?
var fn = function () {
var x = 'x',
y = 'y';
this.a = 'a',
this.b = 'b',
this.c = 'c',
this.d = 'd',
this.e = 'e';
}
Ответы
Ответ 1
Оператор запятой является оператором, который может использоваться внутри выражения. Он используется для выделения нескольких разных выражений и имеет значение "оценить все следующие выражения, а затем произвести значение окончательного выражения". Например:
a = 1, b = 2, c = 3
означает "оцените a = 1
, затем b = 2
, затем c = 3
, затем оцените значение выражения c = 3
.
Точка с запятой не является оператором и не может использоваться внутри выражения. Он используется как часть синтаксиса JavaScript для обозначения конца выражения, которое рассматривается как оператор. Например, вы могли бы сказать
a = 1; b = 2; c = 3;
И это будет означать "в последовательности есть три оператора: оценивать первое выражение как первый оператор, второе выражение как второе утверждение, а третье выражение - как третий оператор".
В этом отношении эти два не являются полностью взаимозаменяемыми. Например, вы не можете писать
var a = 1, var b = 2;
Потому что var a = 1
и var b = 2
являются операторами, а не выражениями и, следовательно, не могут быть разделены запятыми. Здесь вы должны использовать точку с запятой.
(Примечание: вы могли бы сказать
var a = 1, b = 2;
потому что язык специально разрешает это использование запятой как часть синтаксиса оператора объявления. Здесь запятая не используется как оператор.)
Аналогично, вы не можете сказать
a = (b = 1; c = 2);
Потому что здесь правая часть выражения должна быть выражением, а не выражением, а ;
используется для разделения операторов. Вместо этого внутренняя точка с запятой должна быть запятой. (Опять же, этот код довольно неудобен и необычен в первую очередь, поэтому вы, вероятно, не должны этого делать!)
С стилистической точки зрения, оператор запятой редко используется и недостаточно скрыт, чтобы он мог развернуть достаточно компетентные кодовые кодировки JavaScript. В результате я бы настоятельно рекомендовал не использовать его и вместо этого следовать установленным соглашениям в JavaScript об использовании точек с запятой для завершения операторов, даже если это было бы эквивалентно и синтаксически законно использовать запятые для выделения выражений, которые каждый из них используется в качестве операторов.
Надеюсь, это поможет!
Ответ 2
Нет, запятая имеет три значения.
- С объявлением переменной, он просто позволяет вам опустить
var
перед каждой переменной.
- С выражениями: "Оператор запятой оценивает оба своих операнда (слева направо) и возвращает значение второго операнда."
- Разделяйте аргументы в объявлениях функций и вызовах функций, но это должно быть очевидно для каждого программиста.
Пример для двух:
alert((2,3)); //3
Обратите внимание, что запятая в выражении var не является оператором запятой, потому что она не существует в выражении. Скорее, это особый символ в операторах var для объединения нескольких из них в один. Практически эта запятая ведет себя почти так же, как и оператор запятой.
MDN
Когда полезен оператор запятой?
Ответ 3
Это действительно неважно. Насколько мне известно, нет никакой выгоды от использования запятых.
Просто используйте то, что вы предпочитаете:)
Вот что JavaScript - Хорошие части должен сказать:
Оператор запятой может привести к чрезмерно сложным выражениям. Оно может также маскировать некоторые ошибки программирования.
JSLint ожидает увидеть запятую, используемую как разделитель, но не как оператора (за исключением частей инициализации и инкрементации для утверждения). Он не ожидает, что в массиве литералы. Дополнительные запятые не должны использоваться. Не должно появляться запятая после последнего элемента литерала массива или объектного литерала, потому что это может быть неверно истолковано некоторыми браузерами.
Ответ 4
Лучше всегда оставаться в согласии с конвенцией. Это либо все полуколоны, либо все запятые, и я уверен, что вы предпочли бы использовать полуколоны, а не запятые везде.
Также нет увеличения скорости, поэтому вам не о чем беспокоиться.