Logo
Книга для начинающих
ВходРегистрация
/
Программирование
/
Курс JavaScript
/

Кавычки

JavaScript: Кавычки

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

Строки

С точки зрения JavaScript строка представляет собой просто набор символов, заключённый в кавычки. Посмотрим на примеры.

'Hello'
'Goodbye'
'G'
' '
''

Все эти варианты являются строками.

  • 'Hello', 'Goodbye' и 'G' представляют собой строки из нескольких или одного символа.
  • ' ' является строкой, состоящей из одного пробела.
  • '' является пустой строкой, в ней нет ни одного символа. Играет такую же роль, как 0 в математике.

То есть всё, что находится внутри кавычек, считается строкой, даже если там только пробел или вообще ничего нет.

Если вывести строки на экран, то 'Hello' и 'Goodbye' будут хорошо заметны. Но ' ' и '' могут сбивать с толку, потому что вывод пустой строки выглядит как полное отсутствие, а строка с пробелом покажет «пустое место», которое визуально сложно отличить. При этом JavaScript чётко различает их. Пустая строка означает отсутствие символов, тогда как строка с пробелом содержит конкретный символ пробела.

Контрольный вопрос. Это одинаковые строки или нет?

'хекслет'
' хекслет'

Терминология. Строка или строчка?

В программировании есть терминологическая ловушка.

  • Строка (string) является типом данных (то что разбирали выше), например 'hello'.
  • Строчка (line) является строкой текста в файле или в коде.

Например, в коде ниже есть строчка, но не строка.

console.log(5);

Чтобы избежать путаницы, в этом курсе мы будем использовать такие формулировки.

  • Строка, когда говорим о типе данных.
  • Строчка, когда речь идёт о строках кода.

Одинарные и двойные кавычки

В JavaScript строки можно записывать как в одинарных, так и в двойных кавычках.

console.log('Hello');
console.log("Hello");

По умолчанию принято использовать одинарные кавычки ', если внутри строки не требуется двойных. Этого стиля придерживается популярный стандарт оформления кода от AirBnb.

Проблема с кавычками внутри строки

Представьте, что вы хотите напечатать строку Dragon's mother. В ней есть апостроф ('s), совпадающий с символом одинарной кавычки. Попробуем так.

console.log('Dragon's mother');
// Uncaught SyntaxError: missing ) after argument list

JavaScript решит, что строка заканчивается после слова Dragon, а остальное не распознает как валидный код, что вызовет синтаксическую ошибку. Чтобы избежать этого, обернём строку в двойные кавычки.

console.log("Dragon's mother");

Теперь JavaScript понимает, что одинарная кавычка внутри строки является обычным символом, а сама строка начинается и заканчивается двойными кавычками.

Если внутри строки нужны двойные кавычки, а снаружи одинарные, проблем тоже не будет.

console.log('He said "No"');

Иногда в строке встречаются оба типа кавычек.

Dragon's mother said "No"

В этом случае, чтобы JavaScript не спутал кавычки внутри строки с внешними, используют символ экранирования — обратный слэш \. Он говорит интерпретатору, что следующий за ним символ является частью строки, а не управляющим символом.

console.log("Dragon's mother said \"No\"");
// => Dragon's mother said "No"

Здесь мы экранируем двойные кавычки внутри строки, заключённой в двойные кавычки.

Обратите внимание, JavaScript воспринимает \" как один символ-кавычку, а не два символа. То же самое касается \', \\, \n и других управляющих последовательностей. Они выглядят как два символа в коде, но в строке считаются за один.

То же самое работает и в обратном случае.

console.log('Dragon\'s mother said "No"');
// => Dragon's mother said "No"

Как вывести обратный слэш

Чтобы вывести сам обратный слэш, его тоже нужно экранировать.

console.log("\\");
// => \

Задание

Программа не нашла нужный файл и вывела сообщение с его названием. Напишите программу, которая выводит то же самое сообщение:

The file "user's_config.json" was not found.

Строка содержит и апостроф, и двойные кавычки — выберите подходящий способ их записи.

Коммерческий опыт и Трудоустройство

Полезное

  • Строки в JavaScript

Команда проекта находится в телеграм-сообществе. Там можно задать любой вопрос и повлиять на проект

Нашли ошибку? Есть что добавить? Пулреквесты приветствуются
/
Программирование
/
Курс JavaScript
/

Кавычки

JavaScript: Кавычки

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

Строки

С точки зрения JavaScript строка представляет собой просто набор символов, заключённый в кавычки. Посмотрим на примеры.

'Hello'
'Goodbye'
'G'
' '
''

Все эти варианты являются строками.

  • 'Hello', 'Goodbye' и 'G' представляют собой строки из нескольких или одного символа.
  • ' ' является строкой, состоящей из одного пробела.
  • '' является пустой строкой, в ней нет ни одного символа. Играет такую же роль, как 0 в математике.

То есть всё, что находится внутри кавычек, считается строкой, даже если там только пробел или вообще ничего нет.

Если вывести строки на экран, то 'Hello' и 'Goodbye' будут хорошо заметны. Но ' ' и '' могут сбивать с толку, потому что вывод пустой строки выглядит как полное отсутствие, а строка с пробелом покажет «пустое место», которое визуально сложно отличить. При этом JavaScript чётко различает их. Пустая строка означает отсутствие символов, тогда как строка с пробелом содержит конкретный символ пробела.

Контрольный вопрос. Это одинаковые строки или нет?

'хекслет'
' хекслет'

Терминология. Строка или строчка?

В программировании есть терминологическая ловушка.

  • Строка (string) является типом данных (то что разбирали выше), например 'hello'.
  • Строчка (line) является строкой текста в файле или в коде.

Например, в коде ниже есть строчка, но не строка.

console.log(5);

Чтобы избежать путаницы, в этом курсе мы будем использовать такие формулировки.

  • Строка, когда говорим о типе данных.
  • Строчка, когда речь идёт о строках кода.

Одинарные и двойные кавычки

В JavaScript строки можно записывать как в одинарных, так и в двойных кавычках.

console.log('Hello');
console.log("Hello");

По умолчанию принято использовать одинарные кавычки ', если внутри строки не требуется двойных. Этого стиля придерживается популярный стандарт оформления кода от AirBnb.

Проблема с кавычками внутри строки

Представьте, что вы хотите напечатать строку Dragon's mother. В ней есть апостроф ('s), совпадающий с символом одинарной кавычки. Попробуем так.

console.log('Dragon's mother');
// Uncaught SyntaxError: missing ) after argument list

JavaScript решит, что строка заканчивается после слова Dragon, а остальное не распознает как валидный код, что вызовет синтаксическую ошибку. Чтобы избежать этого, обернём строку в двойные кавычки.

console.log("Dragon's mother");

Теперь JavaScript понимает, что одинарная кавычка внутри строки является обычным символом, а сама строка начинается и заканчивается двойными кавычками.

Если внутри строки нужны двойные кавычки, а снаружи одинарные, проблем тоже не будет.

console.log('He said "No"');

Иногда в строке встречаются оба типа кавычек.

Dragon's mother said "No"

В этом случае, чтобы JavaScript не спутал кавычки внутри строки с внешними, используют символ экранирования — обратный слэш \. Он говорит интерпретатору, что следующий за ним символ является частью строки, а не управляющим символом.

console.log("Dragon's mother said \"No\"");
// => Dragon's mother said "No"

Здесь мы экранируем двойные кавычки внутри строки, заключённой в двойные кавычки.

Обратите внимание, JavaScript воспринимает \" как один символ-кавычку, а не два символа. То же самое касается \', \\, \n и других управляющих последовательностей. Они выглядят как два символа в коде, но в строке считаются за один.

То же самое работает и в обратном случае.

console.log('Dragon\'s mother said "No"');
// => Dragon's mother said "No"

Как вывести обратный слэш

Чтобы вывести сам обратный слэш, его тоже нужно экранировать.

console.log("\\");
// => \

Задание

Программа не нашла нужный файл и вывела сообщение с его названием. Напишите программу, которая выводит то же самое сообщение:

The file "user's_config.json" was not found.

Строка содержит и апостроф, и двойные кавычки — выберите подходящий способ их записи.

Коммерческий опыт и Трудоустройство

Полезное

  • Строки в JavaScript

Команда проекта находится в телеграм-сообществе. Там можно задать любой вопрос и повлиять на проект

Нашли ошибку? Есть что добавить? Пулреквесты приветствуются
← ПредыдущийСледующий →
← ПредыдущийСледующий →
← ПредыдущийСледующий →

Ваше упражнение проверяется по этим тестам

// @ts-check

import { expect, test, vi } from 'vitest';

test('quotes', async () => {
  const consoleLogSpy = vi.spyOn(console, 'log');
  await import('./index.js');

  const firstArg = consoleLogSpy.mock.calls.join('\n');

  expect(firstArg).toBe('The file "user\'s_config.json" was not found.');
});
← ПредыдущийСледующий →

Решение учителя откроется через:

20:00

waiting_clock
← ПредыдущийСледующий →