Можно ли включить "строгий режим" в консоли FireBug и Chrome?
С этой страницы:
<!DOCTYPE html>
<html>
<head>
<script>
"use strict";
var foo = 2;
delete foo;
</script>
</head>
<body></body>
</html>
Консоль Firebug дает:
applying the 'delete' operator to an unqualified name is deprecated
>>> foo
ReferenceError: foo is not defined
foo
Но тогда это успешно:
>>> var bar = 2;
undefined
>>> delete bar;
true
Даже если вы закомментируете, delete foo;
чтобы сценарий не ломался, удаление bar
все еще успешно, несмотря на то, что оно "является свойством объекта Global, поскольку оно создается с помощью объявления переменной и имеет атрибут DontDelete ":
>>> foo
2
>>> delete foo
false
>>> var bar = 2;
undefined
>>> delete bar
true
Можно ли включить "строгий режим" в FireBug и/или в консоли Chrome?
Ответы
Ответ 1
Консоль firebug работает, обертывая весь код вызовом "eval", поэтому первый оператор в вашем script больше не "использует строгий" - следовательно, он отключен. Вы можете попробовать обернуть свой код в функцию, чтобы принудительно использовать "использовать строгую" для этой конкретной функции, но лучшим решением, о котором я знаю, является пропустить консоль и протестировать прямо на самой странице.
Ответ 2
используйте shift + enter для ввода 'use strict'
как это
![введите описание изображения здесь]()
Ответ 3
Если вы просто проверяете одну функцию в консоли, вы также можете просто поместить 'use strict' в первую строку в объявлении функции.
Ответ 4
В Chrome перейдите в "chrome://flags", затем "Включить экспериментальный JavaScript". Перезапустить.
Ответ 5
Хром: поставить 'use strict';
префикс в строке кода (и/или Shift + Enter для многострочного)
'use strict'; var foo = 2; delete foo;