2013-11-21 39 views
2

我想通過聲納驗證Javascript代碼,我對嚴格模式規則有一些疑問。在Javascript嚴格模式下,你可以給另一個var分配參數嗎?

我正在驗證的規則是關於"eval" and "arguments" behavior in strict mode

在閱讀本規則描述時,似乎我不能將參數指定爲新變量,以便稍後或在循環中訪問它。

在閱讀一些文件,從strict mode on Firefoxstrict mode on IE規則,我發現基本上都是(適用於這種情況下):

  1. 我不能有任何變量/功能/ etc提及參數因爲這是一個保留字。不能綁定

但是,上面的示例代碼似乎

  • 參數違反聲納規則

    var args = arguments; 
    

    所以,這是一個假陽性或這段代碼違反了嚴格模式

  • +0

    你爲什麼認爲這是驗證規則? – dbarnes

    +1

    我認爲這不違反'嚴格模式',你可以擁有它。 – Mahdi

    +1

    它沒有違反,您可以在開發人員工具的控制檯中自行檢查它。 – vorrtex

    回答

    1

    基於用戶的答案和一些研究,我發現這個代碼var args = arguments;是有效的,因爲它不修改參數,但只將其分配給另一個變量。

    請注意,由於args現在指向arguments它也不能修改。但它可以正常讀取。

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

    相關問題