Задать вопрос
@djamulet

JS use strict: Дублирование свойств в объекте приводит к ошибке?

Я изучаю JS.

В интернете наткнулся на Strict Mode.
И в частности на многих сайтах говориться, что когда вы создаете объект с двумя одинаковыми ключами, то Strict Mode выбросит исключение TypeError.

Я создал такой объект, но ошибок никаких не выдало.
Вот мой код:

"use strict";
var x = {
	a: 1,
	b: 2,
	a: 3
};


Тестировал в chrome 57.0.2987.110
С чем это связано?
  • Вопрос задан
  • 274 просмотра
Подписаться 3 Оценить 1 комментарий
Пригласить эксперта
Ответы на вопрос 2
Возможно имелось ввиду это:
"use strict";

var user = {};

Object.defineProperty(user, "name", {
  value: "Вася",
  writable: false, // запретить присвоение "user.name="
  configurable: false // запретить удаление "delete user.name"
});

// Теперь попытаемся изменить это свойство.

// в strict mode присвоение "user.name=" вызовет ошибку
user.name = "Петя";


Без строгого режима 'use strict' он тихо возьмет твое значение и выбросит как мусор, а в строгом скажет тебе о невозможности этого действия.
Ответ написан
Комментировать
vermus
@vermus
Наткнулся на вопрос гуглением. Ответ: данное ограничение было отменено.

https://developer.mozilla.org/en-US/docs/Web/JavaS...

In ECMAScript 5 strict mode code, duplicate property names were considered a SyntaxError. With the introduction of computed property names making duplication possible at runtime, ECMAScript 2015 has removed this restriction.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы