问题
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?
回答1:
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.
回答2:
use shift+enter to input 'use strict'
like this
回答3:
If you are just testing a single function in the console, you can also just put 'use strict' as the first line in the function declaration.
回答4:
On Chrome go to "chrome://flags", then "Enable Experimental JavaScript". Relaunch.
回答5:
Chrome: put 'use strict';
prefix in your code line (and/or shift+enter for multiline)
'use strict'; var foo = 2; delete foo;
来源:https://stackoverflow.com/questions/11677452/possible-to-enable-strict-mode-in-firebug-and-chromes-console