Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.05.2012, 00:23
Аватар для DreamTheater
Профессор
Отправить личное сообщение для DreamTheater Посмотреть профиль Найти все сообщения от DreamTheater
 
Регистрация: 15.02.2011
Сообщений: 471

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

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

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

Последний раз редактировалось DreamTheater, 21.05.2012 в 00:25.
Ответить с цитированием
  #2 (permalink)  
Старый 21.05.2012, 00:36
Аватар для DreamTheater
Профессор
Отправить личное сообщение для DreamTheater Посмотреть профиль Найти все сообщения от DreamTheater
 
Регистрация: 15.02.2011
Сообщений: 471

jQuery использует двойные, но большинство других библиотек и фреймворков использует одинарные. Вот например создатель Node.js почему-то категорически против двойных кавычек.
Ответить с цитированием
  #3 (permalink)  
Старый 21.05.2012, 00:42
Аватар для DreamTheater
Профессор
Отправить личное сообщение для DreamTheater Посмотреть профиль Найти все сообщения от DreamTheater
 
Регистрация: 15.02.2011
Сообщений: 471

Сообщение от nasqad Посмотреть сообщение
И я люблю табы, я так и не понял как их включить в phpstorm`e так что мучаюсь с пробелами. В любой IDE пробелы все равно сьезжают и пока не форматнешь, так и остается один прбел лишний раздражающий кошмар где нибудь.
Ответить с цитированием
  #4 (permalink)  
Старый 21.05.2012, 16:21
Аватар для Джэксон
Аспирант
Отправить личное сообщение для Джэксон Посмотреть профиль Найти все сообщения от Джэксон
 
Регистрация: 21.05.2012
Сообщений: 89

Я люблю одинарные кавычки. Не знаю почему. Просто нравятся и всё. Пока всё работает (и я надеюсь будет работать и потом).
Ответить с цитированием
  #5 (permalink)  
Старый 21.05.2012, 16:37
Аватар для Раед
''
Отправить личное сообщение для Раед Посмотреть профиль Найти все сообщения от Раед
 
Регистрация: 11.12.2011
Сообщений: 636

В JS обычно использую одинарные кавычки. Сложно сказать почему, просто привык.
По поводу отступов, 1 пробел. Это быстрее чем 2 пробела и меньше чем один таб => выглядит как-то эстетичнее
Ответить с цитированием
  #6 (permalink)  
Старый 21.05.2012, 18:05
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Лично для меня строковые значения в одинарных кавычках в скриптах выглядят эстетичнее, а в двойных, действительно, стало привычнее видеть значения атрибутов тегов.
А вот насчёт пробелов и табуляций, я однозначно за два пробела, табуляции - это ужасно каждый раз перелистывать влево-вправо, чтобы посмотреть код.
Ответить с цитированием
  #7 (permalink)  
Старый 21.05.2012, 18:35
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

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

кстати, давайте взвесим количество "пустого места" в отступах. кому как нравится, 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();
    }
  }
}

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

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

Последний раз редактировалось melky, 21.05.2012 в 18:38.
Ответить с цитированием
  #8 (permalink)  
Старый 21.05.2012, 18:55
Аватар для Раед
''
Отправить личное сообщение для Раед Посмотреть профиль Найти все сообщения от Раед
 
Регистрация: 11.12.2011
Сообщений: 636

melky,
Я вообще за 1 пробел.
1) Его быстрее ставить
2) 2 - ещё куда не шло, но 4 - это много. Слишком большой отступ и читабельность только снижается
Ответить с цитированием
  #9 (permalink)  
Старый 21.05.2012, 19:26
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Пробел является наверное самым используемым символом, для тех, кто нормально печатает всеми пальцами (рук), проблем с тем, чтобы нажать два раза большим пальцем по пробелу возникать не должно.
Смысла использовать 4 пробела вообще не видно (и читабельность, на мой взгляд, хуже), 1 пробел всё-таки, также, на мой взгляд менее читабельно, у кого проблема с лишними пробелами, то это проблема в первую очередь сред разработки, а потом уже разработчика.
2 пробела самое милое дело (читабельно, аккуратно и глазом контролируемо), а табуляция это вообще плохой стиль оформления кода, но в принципе каждому своё.
Ответить с цитированием
  #10 (permalink)  
Старый 21.05.2012, 19:26
Аватар для 9xakep
сегодня в 12:34|Комментир
Отправить личное сообщение для 9xakep Посмотреть профиль Найти все сообщения от 9xakep
 
Регистрация: 12.04.2011
Сообщений: 1,180

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

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

Так красивее чтоли...
__________________
оляля, ололо
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Посоветуйте самоучитель или обучающий сайт или видео курсы Seva1986 (X)HTML/CSS 14 26.01.2012 22:03
Объект не поддерживает это свойство или метод load_081112_0953.js 1auto1 Internet Explorer 1 13.04.2011 21:59
В зависимости от referrer выводить рекламу adsene или зорьки wlad2 Общие вопросы Javascript 12 19.12.2010 01:02
Нужны кавычки, но ' - такие кавычки занимает PHP, " - а такие JavaScript. FirstFrost Общие вопросы Javascript 14 13.07.2010 14:43
Игра орел или решка на jquery. В любом случаи выводит вы проиграли! Dimaz jQuery 4 25.12.2009 15:04