最近,我通过Crockford的JSLint运行了一些我的JavaScript代码,它给出了以下错误:
第1行问题1:缺少"使用严格"声明.
做一些搜索,我意识到有些人会加入"use strict";他们的JavaScript代码.一旦我添加了语句,错误就会停止显示.不幸的是,谷歌没有透露这个字符串声明背后的历史.当然它必须与浏览器如何解释JavaScript有关,但我不知道效果会是什么.
那么它是"use strict";什么,它意味着什么,它是否仍然相关?
当前的任何浏览器都会响应"use strict";字符串还是将来使用?
我发现Javascript中的严格模式有些奇怪.
use strict在所有,arguments.callee.use strict在我自己的代码中使用,在一个函数范围内.当我调用库提供的其中一个函数时,它会抛出一个错误.然而,
use strict我删除了所有不相关的东西并将代码缩减为此(在jsFiddle上的在线演示):
// This comes from the minified external JS library.
// It creates a global object "foo".
(function () {
foo = {};
foo.bar = function (e) {
return function () {
var a5 = arguments.callee;
while (a5) {
a5 = a5.caller // Error on this line in all browsers except Chrome …Run Code Online (Sandbox Code Playgroud)