Javascript и пробелы в коде
Javascript, как практически и все остальные языки программирования не волнуют пустоты. По пустотами мы подразумеваем пробелы, табуляцию и переносы строк. Имея файл с исходным кодом скрипта, я могу поставить по несколько пустых строк между каждым из операторов и это никак не повлияет на выполнение кода:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
var a = 5; var b = 10; var c = 20; a++; b--; c += 10; var x = true; var z = false; var name = prompt("Как ваше имя?"); var massage = "Привет"; alert(massage + name); |
Данный язык программирования просто игнорирует пустые символы и читает код, так как он есть. Он игнорирует разрывы строк, потому, что понимает по точке с запятой ; где заканчивается оператор.
На самом деле благодаря четкому указанию, где заканчивается оператор мы можем собрать их в одну строчку, отделяя друг от друга ;.
1 |
var a = 5; var b = 10; var c = 20; |
У JS нет с этим никаких проблем, и часто так делают с готовыми библиотеками, для сжатия веса документа. Но так наш код хуже читается и в нем будет труднее найти нужный нам оператор для правки или замены. И я буду всегда использовать общее правило — один оператор = одна строка.
Но это не все, даже внутри операторов пустоты игнорируются, хотя не везде, например вот в таком случае они игнорируются:
1 |
var a = 5; |
А если убрать пробел между var и именем переменной, это уже будет ошибкой. Хотя между именем переменной, знаком = и присвоенным значением пробелы не обязательны!
Но есть пробелы, которые имеют огромное значение и их присутствие испортит нашу программу, давайте рассмотрим эти оба примера.
Итак у нас есть запись:
1 |
a++; |
Это оператор инкремента (добавление к переменной единицы), в котором два знака сложения являются одним целым и между ними не допустимы пробелы. Мы можем записать это в таком виде:
1 |
a ++; |
или же добавить пробел после :, но никак внутри ++. Нельзя вставлять пробелы между такими операторами, как: ++, ==, —, +=, -+ и т.д., это то, как будто бы вы пытались поставить пробел внутри слова var, что естественно привело бы к сбою программы.
Вторым важным значением для пробелов является строковое значение:
1 2 |
var name = prompt("Как ваше имя?"); var name = prompt("Как ваше имя ?"); |
Эти две строки будут иметь разный вид отображения в браузере, внутри строки пробелы учитываются и это нужно помнить. Но что делать, если мне нужно перенести строку внутри string? Наверное многие из вас подумали о использование тега <br>, но это не так! Банальный перенос троки тоже не приведет к правильной работе или желаемому решению:
1 2 |
var name = prompt("Как ваше имя?"); |
Это не верное решение, так давайте тогда найдем его. Для разделения строк и перенос второй части на вторую строку нужно дать подсказку для javascript, и это записывается при помощи обратного слеша и литеры n, давайте взглянем на пример:
1 |
var name = prompt("Как ваше \nимя?"); |
Вот так желается правильный перенос внутри строки, вы наверное заметили, что знак \n стоит рядом со следующим словом и между ними нет пробелов, это потому, что js понимает этот специальный символ и игнорирует рядом стоящее слово, а просто делает перенос троки. Сохраните себе данный пробел и убедитесь в его работоспособности.
Когда вы сохранили пример и просмотрели на результат в браузере, то наверное заметили, что введенное вами имя, было склеено со словом Привет, а все потому, что это есть конкатенация или склеивание двух строк вместе. Я создал переменную massage, которой задал значение Привет, а затем склеил их при вызове оператором alert. Давайте исправим этот момент, нам нужно сделать, чтобы в итоге человек получал что-то вроде такого: Привет, Андрей. Не вопрос идем в нашу переменную massage и внутри значения после Привет, ставим запятую и пробел, перед вторыми кавычками, как в примере ниже:
1 |
var massage = "Привет, "; |
И теперь мы получаем желаемое значение, и это еще одна причина, по которой мы будем считать пробел значащим символом.
В последующих занятиях мы будем все больше использовать знаков пробелов и табуляций, для javascript они не значат ничего, но нам помогут красиво и читабельно форматировать код и лучше разбираться в написании программ на этом языке.
Очень подробно и профессионально написана статья. Даже несведущему человеку должно быть все понятно. И действительно, если самому можно разобраться, то зачем оплачивать. И тем более, что есть время, чтобы разбираться. так приобретается новый навык. Возможно и новая работа.