javascript-tutorial-ru icon indicating copy to clipboard operation
javascript-tutorial-ru copied to clipboard

Что выведет alert?

Open glodov opened this issue 7 years ago • 6 comments

Что выведет alert?

let  str = "Hello";
str.something = 5;
alert(str.something); // ?
  • 5
  • undefined
  • Будет ошибка

На самом деле правильный ответ undefined в Google Chrome.

glodov avatar Jun 24 '18 10:06 glodov

Будет ошибка

fayzullayev avatar Nov 13 '18 13:11 fayzullayev

с чего вдруг будет ошибка?

использование . приводит строку к объекту - оба раза будет приведение к новому объекту, так что результат undefined

vvscode avatar Nov 18 '18 18:11 vvscode

Вообще сейчас и в фф, и в хроме выдает undefined

kleshninpo avatar Dec 16 '18 22:12 kleshninpo

"use strict"
let str = "Hello";
str.something = 5;
alert(str.something); // ?

Uncaught TypeError: Cannot create property 'something' on string 'Hello'

ksetrin avatar Apr 27 '19 15:04 ksetrin

хм

кто найдет где в доке про это написано - дайте знать, пожалуйста

vvscode avatar Apr 27 '19 16:04 vvscode

https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Strict_mode

Любое присваивание, которое в обычном режиме завершается неудачей (присваивание значения свойству, защищённому от записи; присваивание значения свойству, доступному только на чтение; присваивание нового свойства нерасширяемому объекту), в строгом режиме выбросит исключение:

Будет ошибка в строгом режиме, с обычном ошибки не будет, но будет неудача присвоения

vvscode avatar Apr 27 '19 16:04 vvscode