AJP AJP - 1 month ago 11
Javascript Question

Possible to enable "strict mode"; in FireBug and Chrome's console?

With this page:

<!DOCTYPE html>
<html>
<head>
<script>
"use strict";
var foo = 2;
delete foo;
</script>
</head>
<body></body>
</html>


Firebug console gives:

applying the 'delete' operator to an unqualified name is deprecated
>>> foo
ReferenceError: foo is not defined
foo


But then this is successful:

>>> var bar = 2;
undefined
>>> delete bar;
true


Even if you comment out
delete foo;
so that the script does not break, deleting
bar
is still successful despite the fact it "is a property of a Global object as it is created via variable declaration and so has DontDelete attribute":

>>> foo
2
>>> delete foo
false
>>> var bar = 2;
undefined
>>> delete bar
true


Is it possible to enable "strict mode"; in FireBug and or Chrome's console?

Answer

The firebug console works by wrapping all the code in an "eval" call so the first statement in your script is no longer "use strict" - hence it is disabled. You could try wrapping your code in a function to enforce "use strict" for that particular function but the best solution I know of is to skip the console and test straight in the page itself.