相关疑难解决方法(0)

JavaScript中使用"严格"做什么,背后的原因是什么?

最近,我通过Crockford的JSLint运行了一些我的JavaScript代码,它给出了以下错误:

第1行问题1:缺少"使用严格"声明.

做一些搜索,我意识到有些人会加入"use strict";他们的JavaScript代码.一旦我添加了语句,错误就会停止显示.不幸的是,谷歌没有透露这个字符串声明背后的历史.当然它必须与浏览器如何解释JavaScript有关,但我不知道效果会是什么.

那么它是"use strict";什么,它意味着什么,它是否仍然相关?

当前的任何浏览器都会响应"use strict";字符串还是将来使用?

javascript syntax jslint use-strict

7339
推荐指数
29
解决办法
105万
查看次数

在不同的Web浏览器上使用"use strict"的范围不一致(关于arguments.callee和caller)

情况:

我发现Javascript中的严格模式有些奇怪.

  • 我正在使用外部的第三方Javascript库
    • 被缩小了,
    • 拥有超过4000行代码,
    • 不是use strict在所有,
    • 正在使用arguments.callee.
  • use strict在我自己的代码中使用,在一个函数范围内.

当我调用库提供的其中一个函数时,它会抛出一个错误.然而,

  • 只有在我使用时才会抛出错误 use strict
  • 除Chrome之外的所有浏览器都会引发错误

码:

我删除了所有不相关的东西并将代码缩减为此(在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)

javascript ecmascript-5

28
推荐指数
1
解决办法
2万
查看次数

标签 统计

javascript ×2

ecmascript-5 ×1

jslint ×1

syntax ×1

use-strict ×1