Что выведет alert?
Что выведет alert?
let str = "Hello";
str.something = 5;
alert(str.something); // ?
- 5
- undefined
- Будет ошибка
На самом деле правильный ответ undefined в Google Chrome.
Будет ошибка
с чего вдруг будет ошибка?
использование . приводит строку к объекту - оба раза будет приведение к новому объекту, так что результат undefined
Вообще сейчас и в фф, и в хроме выдает undefined
"use strict"
let str = "Hello";
str.something = 5;
alert(str.something); // ?
Uncaught TypeError: Cannot create property 'something' on string 'Hello'
хм
кто найдет где в доке про это написано - дайте знать, пожалуйста
https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Strict_mode
Любое присваивание, которое в обычном режиме завершается неудачей (присваивание значения свойству, защищённому от записи; присваивание значения свойству, доступному только на чтение; присваивание нового свойства нерасширяемому объекту), в строгом режиме выбросит исключение:
Будет ошибка в строгом режиме, с обычном ошибки не будет, но будет неудача присвоения