我正在尝试通过Sonar验证Javascript代码,我对严格模式规则有疑问。
我正在验证的规则是"eval" and "arguments" behavior in strict mode。
在阅读此规则说明时,我似乎无法将参数分配给新变量,以便稍后或循环访问它。
在阅读一些文档时,从strict mode on Firefox和strict mode on IE我发现的规则基本上是(适用于这种情况):
但是,上面的示例代码似乎违反了声纳规则:
var args = arguments;
那么,这是假阳性还是这段代码违反严格模式?
答案 0 :(得分:2)
根据用户的答案和一些研究,我发现此代码(var args = arguments;
)有效,因为它不是修改参数,而是只将它分配给另一个变量。
请注意,由于args
现在指向arguments
,因此也无法对其进行修改。但它可以正常阅读。