В чем разница между использованием tab и space при форматировании исходного кода?

когда мы хотим дать некоторое форматирование кода, чтобы сделать его более читаемым. Мы можем использовать Tab и пробел (нажав пробел на клавиатуре). Много раз даю пробел вручную.

У меня некоторые путаницы

  • есть ли разница между ними?
  • использует tab лучше, чем помещения?
  • использовать пробел увеличить размер документа и tab нет?
  • есть ли какие-либо различия между single tab/пробел и несколько. с точки зрения размера страницы?
  • есть ли разница в использовании tab или пробел в HTML, CSS и Javascript?

Dreamweaver имеет эту опцию в настройках

enter image description here

7 ответов


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

пробелы потребляют больше KBs, но везде выглядят равными.

хорошие редакторы имеют функции retab для их преобразования.

в JS и CSS это не имеет значения, HTML должны не имеет значения, но может в некоторых случаях.


использование вкладок раздражает, потому что некоторые редакторы интерпретируют вкладку как 4 пробела, некоторые другие как 8 пробелов, а некоторые другие как 2 пробела, что делает отступ полностью неправильным, если вкладки и пробелы используются в одном файле.

Я всегда использую пробелы только для того, чтобы избежать этой проблемы.

Это может немного увеличить размер загрузки ваших страниц, но вы также можете уменьшить JavaScript и CSS-файлы и / или использовать сжатие gzip на лету, чтобы смягчить этот небольшой проблема.


С Помощью Вкладок :

  • вкладка занимает меньше места
  • Tab определяется пользовательской системой:: поэтому в моем случае, если я предпочитаю 2space:: tab, я могу просмотреть его таким образом
  • перемещение одного уровня отступа назад намного проще, если вы используете вкладки .

Использование Пространства :

  • соотношение табуляции обычно по умолчанию равно 1: 8 . Поэтому на всех системах "новичков" ваш код будет трудно прочитать . Также, если вы просмотрите свой код на github / pastebin там снова будет кое-что неловкое .

My take: перейдите с вкладками для разработки , найдите replace '\t' with ' [4 пробелов], а затем для выпуска minify [ это полосы вкладок и пробелов ] .


лично я рассматриваю это как вопрос предпочтения, связанный с простотой форматирования. Я бы предпочел использовать tab, потому что это только один клик, и он имитирует 4-5 пробелов. На мой взгляд, намного проще. Иначе я не вижу смысла.


использование вкладки технически занимает меньше памяти, чем использование, скажем, 5 пробелов. Поэтому при попытке оптимизировать размер файла это может быть полезно. Однако сокращение текста будет иметь лучший эффект. Посмотрите код minifying для получения дополнительной информации по этой теме.

некоторые люди предпочитают пробелы, а некоторые предпочитают вкладки. Это вопрос предпочтения, и у многих людей есть разные причины для этого. Вот отличная статья по этому вопросу: http://www.jwz.org/doc/tabs-vs-spaces.html

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


Если ваш код загружается, например HTML или Javascript или CSS, это имеет значение, потому что файл больше, если используются пробелы. Насколько больше, зависит от количества линий и уровней отступов. Это то же самое, что и включение комментариев в код: они увеличивают размер файла.

Если ваш код будет скомпилирован, например Actionscript или Java или C, или токенизирован, например Perl, не имеет значения, используете ли вы пробелы или вкладки, и вы можете включить столько абзацев комментарии / документация, как вам нравится, потому что это только для вашей собственной выгоды. Все эти вкладки, пробелы и комментарии будут проигнорированы при построении окончательного кода нижнего уровня.


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

Я считаю, что единственным языком, где это действительно имеет значение, является Python. На любом другом языке, символы табуляции и пробелы, в основном даже - просто будьте уверены, чтобы выбрать один и согласовываться с ним.