JS Strings
Как мы знаем, строковый тип переменных - это string.
Значения типа string записываются в кавычках.
let text = 'my text'
[Link](text) //выведет на консоль 'my text'
[Link](typeof text) //выведет на консоль string
Разберем виды кавычек в JS
'text' - одинарные кавычки
"text" - двойные кавычки
`my
awesome
text` - косые кавычки (~ / ё на клавиатуре)
Обычные строки мы записываем в одинарных кавычках.
Различные атрибуты, чаще всего в HTML, записываем в двойных кавычках.
В косых кавычках мы можем записывать многострочный текст, с переносом
строк.
Кроме того, косые кавычки используются для записи шаблонов (слався ES6).
Запись шаблонов:
let numb = 10
let text = `Today I want to eat ${numb} kg durians`
[Link](text) //получим строку 'Today I want to eat 10 kg
durians'
Внимание
Конструкция ${<переменная>} вписывает значение переменной в строку
записанную исключительно в косых кавычках. Ни с одинарными, ни с двойными
кавычками это не работает!
Параметры для строк
.length
Каждая строка имеет параметр .length, который содержит в себе длину строки
(количество всех символов, включая пробелы и т.д.).
let text = 'my text'
[Link]([Link]) //вернет 7
Пустая строка имеет длину 0 и записывается просто двумя кавычками, без
пробела
let text =''
[Link]([Link]) //вернет 0
Забегая вперед, без приведения типов, пустая строка конгруэнтна
значению false.
let text = ''
[Link](text == false) //вернет true
.indexOf('')
У строк есть возможность обращаться к символам по их индексу (адресу), как и
у массивов есть возможность обращения к элементам.
Параметр .indexOf('<подстрока>') помогает найти в строке индекс начала
подстроки.
let text = 'Today I want to eat 10 kg durians'
[Link]([Link]('eat')) //вернет 16
В примере выше мы получим 16 потому, что с 16 символа начинается подстрока
указанная в кавычках параметра .indexOf(’’).
Не забываем, что и в строках, и в массивах счет начинается с нуля.
Если .indexOf('<подстрока>') не найдет подстроку, то вернётся -1.
let text = 'Today I want to eat 10 kg durians'
[Link]([Link]('apple')) //вернет -1
Мы можем достать из строки какой-то символ, на манер массива, но не можем
изменять его!
let text = 'Bill'
text[0] = 'W' //не сработает
[Link](text) //вернет 'Bill'
[Link](text[0]) //вернет 'B'