diff options
Diffstat (limited to 'files/ru/learn/javascript/first_steps/strings')
-rw-r--r-- | files/ru/learn/javascript/first_steps/strings/index.html | 34 |
1 files changed, 17 insertions, 17 deletions
diff --git a/files/ru/learn/javascript/first_steps/strings/index.html b/files/ru/learn/javascript/first_steps/strings/index.html index 9acead263a..b63ccbcc82 100644 --- a/files/ru/learn/javascript/first_steps/strings/index.html +++ b/files/ru/learn/javascript/first_steps/strings/index.html @@ -37,17 +37,17 @@ original_slug: Learn/JavaScript/Первые_шаги/Строки <ol> <li>Для начала введите следующие строки: - <pre class="brush: js notranslate">var string = 'The revolution will not be televised.'; + <pre class="brush: js">var string = 'The revolution will not be televised.'; string;</pre> </li> <li>Как и в случае с числами, мы объявляем переменную, инициализируя её строковым значением, а затем возвращаем значение. Единственное различие здесь в том, что при написании строки вам нужно окружить значение кавычками. </li> <li>Если вы не сделаете этого или пропустите одну из кавычек, вы получите сообщение об ошибке. Попробуйте ввести следующие строки: - <pre class="brush: js example-bad notranslate">var badString = This is a test; + <pre class="brush: js example-bad">var badString = This is a test; var badString = 'This is a test; var badString = This is a test';</pre> Эти строки не работают, потому что любая текстовая строка без кавычек считается именем переменной, именем свойства, зарезервированным словом или чем-то подобным. Если браузер не может найти его, возникает ошибка (например, «missing, before statement»). Если браузер может видеть, где начинается строка, но не может найти конец строки, как указано во 2-й строке, она жалуется на ошибку (с «unterminated string literal»). Если ваша программа выявляет такие ошибки, вернитесь назад и проверьте все свои строки, чтобы убедиться, что у вас нет пропущенных кавычек.</li> <li>Следующий код будет выполнен только в том случае, если ранее была объявлена переменная <code>string</code> — убедитесь сами: - <pre class="brush: js notranslate">var badString = string; + <pre class="brush: js">var badString = string; badString;</pre> В настоящее время строка <code>badString</code> имеет то же значение, что и строка <code>string</code>.</li> </ol> @@ -56,22 +56,22 @@ badString;</pre> <ol> <li>В JavaScript вы можете выбрать одинарные кавычки или двойные кавычки, чтобы обернуть ваши строки. Оба варианта будут работать нормально: - <pre class="brush: js notranslate">var sgl = 'Single quotes.'; + <pre class="brush: js">var sgl = 'Single quotes.'; var dbl = "Double quotes"; sgl; dbl;</pre> </li> <li>Существует очень мало различий между одиночными и двойными кавычками, и решение какие из них использовать в коде остаётся на ваше усмотрение. Однако вы должны выбрать один вариант и придерживаться его, иначе ваш код может выдать ошибку, особенно если вы используете разные кавычки в одной строке! Ниже приведён пример: - <pre class="brush: js example-bad notranslate">var badQuotes = 'What on earth?";</pre> + <pre class="brush: js example-bad">var badQuotes = 'What on earth?";</pre> </li> <li>Браузер будет считать, что строка не была закрыта, потому что в строке может появиться другой тип цитаты, который вы не используете, чтобы хранить ваши строки в переменных. Из примера можно понять, о чем идёт речь (в коде ошибок нет): - <pre class="brush: js notranslate">var sglDbl = 'Would you eat a "fish supper"?'; + <pre class="brush: js">var sglDbl = 'Would you eat a "fish supper"?'; var dblSgl = "I'm feeling blue."; sglDbl; dblSgl;</pre> </li> <li>Однако вы не можете включить один и тот же знак кавычки внутри строки, если он используется для их хранения. Ниже приведена ошибка, браузер ошибочно определяет место, где строка кончается: - <pre class="brush: js example-bad notranslate">var bigmouth = 'I've got no right to take my place...';</pre> + <pre class="brush: js example-bad">var bigmouth = 'I've got no right to take my place...';</pre> Что приводит нас к следующей теме.</li> </ol> @@ -79,7 +79,7 @@ dblSgl;</pre> <p>Чтобы исправить нашу предыдущую строку кода, нам нужно дать понять браузеру, что кавычка в середине строки не является меткой её конца. Экранирование символов означает, что мы делаем что-то с ними, чтобы убедиться, что они распознаются как текст, а не часть кода. В JavaScript мы делаем это, помещая обратную косую черту непосредственно перед символом. Введите эти строки:</p> -<pre class="brush: js notranslate">var bigmouth = 'I\'ve got no right to take my place...'; +<pre class="brush: js">var bigmouth = 'I\'ve got no right to take my place...'; bigmouth;</pre> <p>Так лучше. Таким же образом можно экранировать и другие символы, например <code>"\</code>. Кроме того существуют специальные коды. Для дополнительной информации см. <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/String#escape_notation">Escape notation</a>.</p> @@ -89,17 +89,17 @@ bigmouth;</pre> <ol> <li>Конкатенация — это новомодное программистское слово, которое означает «объединить». Объединение строк в JavaScript использует оператор плюс (+), тот же, который мы используем для сложения чисел, но в этом контексте он делает кое-что другое. Попробуем пример в нашей консоли.</li> <li> - <pre class="brush: js notranslate">var one = 'Hello, '; + <pre class="brush: js">var one = 'Hello, '; var two = 'how are you?'; var joined = one + two; joined;</pre> Результат этой программы - это переменная <code>joined</code>, содержащая значение "Hello, how are you?".</li> <li>В последнем случае мы просто объединим две строки вместе, но на самом деле, вы можете объединить столько строк, сколько хотите, до тех пор, пока вы ставите <code>+</code> между ними. Попробуйте это: - <pre class="brush: js notranslate">var multiple = one + one + one + one + two; + <pre class="brush: js">var multiple = one + one + one + one + two; multiple;</pre> </li> <li>Вы также можете использовать сочетание переменных и фактических строк. Попробуйте это: - <pre class="brush: js notranslate">var response = one + 'I am fine — ' + two; + <pre class="brush: js">var response = one + 'I am fine — ' + two; response;</pre> </li> </ol> @@ -112,9 +112,9 @@ response;</pre> <p>Давайте посмотрим на конкатенацию строк в действии — вот пример из предыдущего курса:</p> -<pre class="brush: html notranslate"><button>Press me</button></pre> +<pre class="brush: html"><button>Press me</button></pre> -<pre class="brush: js notranslate">var button = document.querySelector('button'); +<pre class="brush: js">var button = document.querySelector('button'); button.onclick = function() { var name = prompt('What is your name?'); @@ -129,22 +129,22 @@ button.onclick = function() { <ol> <li>Итак, что происходит, когда мы пытаемся добавить (или конкатенировать) строку и число? Попробуем это в нашей консоли: - <pre class="brush: js notranslate">'Front ' + 242; + <pre class="brush: js">'Front ' + 242; </pre> Вы можете ожидать, что это вызовет ошибку, но все работает отлично. Попытка представить строку как число на самом деле не имеет смысла, но число как строку — имеет, поэтому браузер довольно умно преобразует число в строку и объединяет две строки вместе.</li> <li>Вы даже можете сделать это с двумя числами, вы можете заставить число стать строкой, обернув её в кавычки. Попробуйте следующее (мы используем оператор <code>typeof</code> для того, чтобы установить является ли переменная числом или строкой): - <pre class="brush: js notranslate">var myDate = '19' + '67'; + <pre class="brush: js">var myDate = '19' + '67'; typeof myDate;</pre> </li> <li>Если у вас есть числовая переменная, которую вы хотите преобразовать в строчную без внесения каких-либо иных изменений или строковую переменную, которую вы хотите преобразовать в число, вы можете использовать следующие две конструкции: <ul> <li>Объект {{jsxref ("Number")}} преобразует всё переданное в него в число, если это возможно. Попробуйте следующее: - <pre class="brush: js notranslate">var myString = '123'; + <pre class="brush: js">var myString = '123'; var myNum = Number(myString); typeof myNum;</pre> </li> <li>С другой стороны, каждое число имеет метод, называемый <code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toString">toString()</a></code>, который преобразует его в эквивалентную строку. Попробуй это: - <pre class="brush: js notranslate">var myNum = 123; + <pre class="brush: js">var myNum = 123; var myString = myNum.toString(); typeof myString;</pre> </li> |