javascript - 在 Javascript 严格模式下,你可以将参数分配给另一个 var 吗?

标签 javascript strict

我正在尝试通过 Sonar 验证 Javascript 代码,但我对严格模式规则有一些疑问。

我正在验证的规则是关于 "eval" and "arguments" behavior in strict mode 的.

在阅读这个规则描述时,我似乎无法将参数分配给新变量以便稍后或在循环中访问它。

在阅读一些文档时,来自 strict mode on Firefoxstrict mode on IE我发现的规则基本上是(适用于这种情况):

  1. 我不能将任何变量/函数/等命名为arguments,因为这是一个保留字。
  2. 参数不能绑定(bind)

但是,上面的示例代码似乎违反了 Sonar 规则:

var args = arguments;

那么,这是误报还是这段代码违反了严格模式

最佳答案

根据用户的回答和一些研究,我发现这段代码 (var args = arguments;) 有效,因为它不修改参数,而只是将其分配给另一个变量。

请注意,由于 args 现在指向 arguments,它也不能被修改。但是可以正常阅读。

更新: Fix will be available在新发布的 Javascript 插件 (1.5) 下。

关于javascript - 在 Javascript 严格模式下,你可以将参数分配给另一个 var 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20127986/

相关文章:

javascript - ngMeta注入(inject)错误

javascript - react 路由器在不在 route 时显示组件的问题

javascript - 导航元素之间的 Bootstrap 分页

javascript - Function.prototype.call 在严格模式之外改变 this 的类型;为什么?

JavaScript:可以使用单引号 5's Strict Mode (") 启用 ECMAScript ('use strict' use strict") 吗?

javascript - 如何使用 AngularJS 加载函数信息并将其保存在路由中的解析范围内

javascript - Json 对象到 Div Html

css - 关于替代 <nav> 功能的想法 - 必须使用 XHTML Strict 1.0

haskell - 在 Haskell 中加强严格性

css - 粘性页脚、页眉和 100% 高度内容