Двойные или одинарные кавычки?
Некоторые языки программирования по-разному обрабатывают строки в двойных и одинарных кавычках (например, PHP), поэтому применение тех или иных имеет определенный смысл в разных ситуациях. В Java допускаются только двойные кавычки, поэтому тут выбора нет. А в нашем с вами JavaScript можно использовать как двойные, так и одинарные, причем без всякой функциональной разницы.
По поводу того какие кавычки использовать предпочтительнее в JavaScript никакая конвенция не указывает (или же я не нашел). Хотелось бы услышать обоснованные аргументы в пользу или против тех или иных кавычек. PS. Также можно обсудить размер отступов (4 пробела против 2) и "пробелы против табуляций". |
jQuery использует двойные, но большинство других библиотек и фреймворков использует одинарные. Вот например создатель Node.js почему-то категорически против двойных кавычек.
|
|
Я люблю одинарные кавычки. Не знаю почему. Просто нравятся и всё. Пока всё работает (и я надеюсь будет работать и потом).
|
В JS обычно использую одинарные кавычки. Сложно сказать почему, просто привык.
По поводу отступов, 1 пробел. Это быстрее чем 2 пробела и меньше чем один таб => выглядит как-то эстетичнее |
Лично для меня строковые значения в одинарных кавычках в скриптах выглядят эстетичнее, а в двойных, действительно, стало привычнее видеть значения атрибутов тегов.
А вот насчёт пробелов и табуляций, я однозначно за два пробела, табуляции - это ужасно каждый раз перелистывать влево-вправо, чтобы посмотреть код. |
я начал ненавидить табы, когда у меня код поплыл при коммите в гит.\ плыл, когда я постил его на форум. после этого я всегда пишу пробелами, и я уверен, что оно будет везде выглядеть одинаково.
кстати, давайте взвесим количество "пустого места" в отступах. кому как нравится, 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,
Я вообще за 1 пробел. |
Пробел является наверное самым используемым символом, для тех, кто нормально печатает всеми пальцами (рук), проблем с тем, чтобы нажать два раза большим пальцем по пробелу возникать не должно.
Смысла использовать 4 пробела вообще не видно (и читабельность, на мой взгляд, хуже), 1 пробел всё-таки, также, на мой взгляд менее читабельно, у кого проблема с лишними пробелами, то это проблема в первую очередь сред разработки, а потом уже разработчика. 2 пробела самое милое дело (читабельно, аккуратно и глазом контролируемо), а табуляция это вообще плохой стиль оформления кода, но в принципе каждому своё. |
Я пробелы на протяжении всей работы над скриптом вообще не ставлю, потому что не путаюсь где что и как. А когда заканчиваю, иду в jsbeutefer.com (название сайта может неправильное, в гугле забейте) И там уже все настроиваю.
Насчет кавычек: обычно ставлю одиночные, но при таком случае ,например: eval("document.getElementById('asd')"); Так красивее чтоли... |
Даже если бы у всех одинаково были настроены табуляции (что вряд ли), длинные расстояния хуже визуально оцениваются, плюс табуляцию не видно среди пробелов и не очень-то приятно, когда ты нажимаешь на backspace, а курсор вместо одной позиции смешается на х знает сколько (теряется контроль над ситуацией).
Не вижу никакой сложности в том, чтобы нажать два раза на пробел вместо одной табуляции (повторюсь, что пробел это один из самых используемых символов (потом наверное идёт backspace для тех, кто делает много ошибок), поэтому сложностей с его лишним нажатием быть не должно. |
Цитата:
похоже, ты меня переубедил... поставлю в виме НЕзамену таба пробелами :) проблем то. Пример: Таб вместо пробела
// 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(); } } } |
Цитата:
За себя скажу: шлепаю табами, т.к. одно нажатие вместо n, да и просто привык. Цитата:
Кавычки ставлю одинарные, по двум причинам: - нет нужды жать шифт - проще читается (для меня) Третьим аргументом в их пользу может служить мысль высказанная ранее: Цитата:
if (list[firingIndex].apply(data[0], data[1]) === false && options.stopOnFalse) { // пишу if ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) { Насчет последнего, не уверен, что буду придерживаться и дальше. Кстати, вопрос melky, ты все еще пишешь в Notepad++? ) |
Цитата:
Цитата:
(пример кода оттуда. чтобы на ссыль не кликать) if ( jQuery.isFunction( html ) ) { return this.each(function(i) { jQuery(this).wrapAll( html.call(this, i) ); }); } if ( this[0] ) { // The elements to wrap the target around var wrap = jQuery( html, this[0].ownerDocument ).eq(0).clone(true); if ( this[0].parentNode ) { wrap.insertBefore( this[0] ); } Цитата:
|
понятно. А я в одну темку из notepad++ влюбился, Odsidian называется.
|
Ставлю табы - но vim автоматически заменяет их на 4 пробела (сам так настроил, вообще-то для python-а изначально, но и для javascript менять не стал). Кавычки любые.
|
Цитата:
|
Цитата:
![]() |
Цитата:
|
А чем лучше темная схема от светлой, я всегда пользуюсь тупо светлой черным по белому, но сегодня оком окинув всех прогеров оказывается черная более популярна. Никогда не юзал, это не утомляет глаза? Всетаки когда черным по белому привычнее, да и думаю лучше, вот даже форум черным по белому:)
|
Цитата:
|
Цитата:
|
Использую данную цветовую схему, т.к. от нее (на мой взгляд) меньше устают глаза.
Кстати, раз уж тема почти что флудовая, предлагаю устроить опрос: "кто какую схему использует" и условно разделить их на две: 1) темный текст на светлом фоне 2) светлый текст на темном фоне у меня 2 :) |
Цитата:
|
Цитата:
Вы этого не видели |
лучше голосование устройте. как потом подсчитывать - вручную ?
|
melky, можно на счетах :D Тему создавал не я и голосование в ней устроить не могу. Еще можно подводить предварительные итоги :) Давай ставь двойку, а то мы проигрываем :lol:
|
Цитата:
Цитата:
|
Цитата:
1 |
лучше
- двойные кавычки - табуляция шириной в 4 пробела - светлый текст на тёмном фоне |
Использую одинарные кавычки (в своё время взял из стандарта кода Google и привык).
Цитата:
|
Одинарные для js, двойные для html. Мир и гармония.)
|
Цитата:
вывод: ![]() |
Одинарные в JS, одинарные в HTML (jade)
Для двойных нужно тянуться к SHIFT. |
|
Цитата:
Цитата:
Цитата:
Цитата:
помнится toad при вставке тоже всё в пробелы превращает, хотя при ручном вводе используется настройка на табуляции в итоге начинаешь плохо думать про лягушек :D Цитата:
|
Я форматировал табами, пока не стал пользоваться Sublime Text, в нем совершенно не ощущаешь никаких неудобств использования пробелов, Backspace удаляет 4 (ну или сколько настроено) пробелов, в отличие от WebStorm.
|
Цитата:
|
Использую двойные кавычки, потому что они более брутальные! Но сейчас не об этом. Вот что меня реально раздражает, так это когда отступы не используют. Сейчас в половине тем - код без отступа. Как пример. Они, блеать, в блокноте что ли пишут, я не пойму?! :-/
Кстати, я вот думаю, что хорошо, если в стандарте языка полностью форматирование прописано. Например, if (true) Не поставил пробел - синтаксическая ошибка. Это, конечно, я утрирую. Но к стилю ведь привыкаешь, и ориентироваться в коде легче становится. |
Часовой пояс GMT +3, время: 20:59. |