Как использовать "строгий" режим в Chrome 'JavaScript Console'

Я использую JavaScript в Chrome 'JavaScript Console' (версия: 35.0), и я не могу использовать предложение "use strict", как ожидалось.

Для следующего фрагмента кода:

var obj={x:1,y:2}

//Define new property with 'writable' flag as false.
Object.defineProperty(obj, "z", {value:3, writable:false, enumerable:false, configurable:false})

// Try to change the property 'z',
"use strict"; obj["z"]=4

Выход: 4

В соответствии с моим пониманием изменение значения свойства "не записывается" бесшумно прерывается в нестрогом режиме и бросает "TypeError" в строгом режиме, но я не вижу исключения.

console.log(obj)

Объект {x: 1, y: 2, z: 3}

Несмотря на то, что значение свойства не изменяется, но я ожидаю исключения. Пожалуйста, исправьте, если я что-то делаю неправильно?

Ответ 1

Самый простой способ использовать строгий режим - использовать IIFE (сразу вызывается выражение функции):

(function()
{
    'use strict';
    var foo = 123;//works fine
    bar = 345;//ReferenceError: bar is not defined
}());

Чтобы создать новую строку в консоли, используйте shift + enter или сначала напишите свой код в отдельном редакторе, а затем скопируйте его в консоль. Настройка скрипки - все в порядке и денди, но просто проверьте свой код с разметкой, на которой он был написан (т.е. Просто очистите кеш браузера и тест).
Однако я настоятельно призываю вас установить node.js, все еще. Это намного проще протестировать ваш код или проверить его (как синтаксически, так и в стиле кодирования) с помощью JSHint. Есть также много способов изучить и ваш код, который закончился из node.js, поэтому он действительно хороший инструмент для разработки