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

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

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

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, так что это действительно хороший инструмент для разработки

Другие вопросы по тегам