Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Двойные или одинарные кавычки? (https://javascript.ru/forum/misc/28463-dvojjnye-ili-odinarnye-kavychki.html)

DreamTheater 21.05.2012 00:23

Двойные или одинарные кавычки?
 
Некоторые языки программирования по-разному обрабатывают строки в двойных и одинарных кавычках (например, PHP), поэтому применение тех или иных имеет определенный смысл в разных ситуациях. В Java допускаются только двойные кавычки, поэтому тут выбора нет. А в нашем с вами JavaScript можно использовать как двойные, так и одинарные, причем без всякой функциональной разницы.

По поводу того какие кавычки использовать предпочтительнее в JavaScript никакая конвенция не указывает (или же я не нашел). Хотелось бы услышать обоснованные аргументы в пользу или против тех или иных кавычек.

PS. Также можно обсудить размер отступов (4 пробела против 2) и "пробелы против табуляций".

DreamTheater 21.05.2012 00:36

jQuery использует двойные, но большинство других библиотек и фреймворков использует одинарные. Вот например создатель Node.js почему-то категорически против двойных кавычек.

DreamTheater 21.05.2012 00:42

Цитата:

Сообщение от nasqad (Сообщение 175686)
И я люблю табы, я так и не понял как их включить в phpstorm`e так что мучаюсь с пробелами. В любой IDE пробелы все равно сьезжают и пока не форматнешь, так и остается один прбел лишний раздражающий кошмар где нибудь.


Джэксон 21.05.2012 16:21

Я люблю одинарные кавычки. Не знаю почему. Просто нравятся и всё. Пока всё работает (и я надеюсь будет работать и потом).

Раед 21.05.2012 16:37

В JS обычно использую одинарные кавычки. Сложно сказать почему, просто привык.
По поводу отступов, 1 пробел. Это быстрее чем 2 пробела и меньше чем один таб => выглядит как-то эстетичнее

bes 21.05.2012 18:05

Лично для меня строковые значения в одинарных кавычках в скриптах выглядят эстетичнее, а в двойных, действительно, стало привычнее видеть значения атрибутов тегов.
А вот насчёт пробелов и табуляций, я однозначно за два пробела, табуляции - это ужасно каждый раз перелистывать влево-вправо, чтобы посмотреть код.

melky 21.05.2012 18:35

я начал ненавидить табы, когда у меня код поплыл при коммите в гит.\ плыл, когда я постил его на форум. после этого я всегда пишу пробелами, и я уверен, что оно будет везде выглядеть одинаково.

кстати, давайте взвесим количество "пустого места" в отступах. кому как нравится, 4 пробела, или 2 пробела? какие "за" и "против"?

для удобства сравнения, приведу оба стиля тут. код взят из jQuery.

Пример: 4 символа
// Fire callbacks
fire = function (data) {
    memory = options.memory && data;
    fired = true;
    firingIndex = firingStart || 0;
    firingStart = 0;
    firingLength = list.length;
    firing = true;
    for (; list && firingIndex < firingLength; firingIndex++) {
        if (list[firingIndex].apply(data[0], data[1]) === false && options.stopOnFalse) {
            memory = false; // To prevent further calls using add
            break;
        }
    }
    firing = false;
    if (list) {
        if (stack) {
            if (stack.length) {
                fire(stack.shift());
            }
        } else if (memory) {
            list = [];
        } else {
            self.disable();
        }
    }
}

Пример: 2 символа
// Fire callbacks
fire = function (data) {
  memory = options.memory && data;
  fired = true;
  firingIndex = firingStart || 0;
  firingStart = 0;
  firingLength = list.length;
  firing = true;
  for (; list && firingIndex < firingLength; firingIndex++) {
    if (list[firingIndex].apply(data[0], data[1]) === false && options.stopOnFalse) {
      memory = false; // To prevent further calls using add
      break;
    }
  }
  firing = false;
  if (list) {
    if (stack) {
      if (stack.length) {
        fire(stack.shift());
      }
    } else if (memory) {
      list = [];
    } else {
      self.disable();
    }
  }
}

*трудно решить, что удобнее :)*

кавычки употребляю обоих видов. чаще всего одинарные, но когда нужно делать конкатенацию, то юзаю двойные (их лучше видно)

Раед 21.05.2012 18:55

melky,
Я вообще за 1 пробел.
1) Его быстрее ставить
2) 2 - ещё куда не шло, но 4 - это много. Слишком большой отступ и читабельность только снижается

bes 21.05.2012 19:26

Пробел является наверное самым используемым символом, для тех, кто нормально печатает всеми пальцами (рук), проблем с тем, чтобы нажать два раза большим пальцем по пробелу возникать не должно.
Смысла использовать 4 пробела вообще не видно (и читабельность, на мой взгляд, хуже), 1 пробел всё-таки, также, на мой взгляд менее читабельно, у кого проблема с лишними пробелами, то это проблема в первую очередь сред разработки, а потом уже разработчика.
2 пробела самое милое дело (читабельно, аккуратно и глазом контролируемо), а табуляция это вообще плохой стиль оформления кода, но в принципе каждому своё.

9xakep 21.05.2012 19:26

Я пробелы на протяжении всей работы над скриптом вообще не ставлю, потому что не путаюсь где что и как. А когда заканчиваю, иду в jsbeutefer.com (название сайта может неправильное, в гугле забейте) И там уже все настроиваю.

Насчет кавычек:
обычно ставлю одиночные, но при таком случае ,например:
eval("document.getElementById('asd')");

Так красивее чтоли...


Часовой пояс GMT +3, время: 13:38.