Подскажите, почему в js ""[1]
выдает undefined
? Почему возможен такой синтаксис? Что это все значит? Как это вообще возможно?
Здравствуйте В JS:
""
это строка, при обращении к индексу 1
""[1]
мы получаем
undefined
Т.к. этот индекс отсутствует. Если же он будет, то мы получим символ, которому он соответствует
"123"[1] //выведет 2, т.к. индексация начинается с 0
""
- является пустой строкой. Доступ к символам строки осуществляется также, как в массиве , вы можете обратиться к любому из них по индексу.
"строка"[1] // на выходе получается "т"
В вашем случае вы выходите за пределы массива, элемент с индексом 1
не определен.
При обращении к символам строки с использованием нотации квадратных скобок происходит обращение к свойству (property) с указанным именем (в данном случае именем является число и можно проверить его наличие с помощью метода hasOwnProperty
). В случае же обращения к несуществующему свойству возвращается неопределённое значение - undefined
. При использовании же метода charAt
с указанием индекса, которого нет в строке, вернётся пустая строка.
Если разложить по полочкам, то ваш код равносилен чему то подобному:
var var1;
var1 = "";
var1[1] === undefined //true
И т.к. string также является массивом, то обращение по индексу 1, когда длинна массива равна 0, вызывает undefined (т.е. "".length = 0
)
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Вот сайт enkaroru При заказе натянули шаблон, стили прописаны от источника где лежит шаблон, вот так:
Если в первый раз кликнуть на div contenteditable то курсор становится где-то вверху, при наборе текста, он становится на правильное местоКак можно...