2013-11-21 5 views
2

Я пытаюсь проверить код Javascript через Sonar, и у меня есть некоторые сомнения относительно строгий режим правил.В строгом режиме Javascript вы можете назначить аргументы другому var?

Правило, которое я проверяю, составляет около "eval" and "arguments" behavior in strict mode.

При чтении этого описания правила, кажется, я не могу назначить аргументы новой переменной для доступа к ней позже или в цикле.

Прочитав некоторые документы, из strict mode on Firefox и strict mode on IE правил я нашел в принципе (что применимо к данному случаю):

  1. Я не могу иметь какие-либо переменные/функции/и т.д., названные аргументов так как это это зарезервированное слово.
  2. аргументы не могут быть связаны

Но, пример кода выше, кажется, нарушает, что Sonar правило:

var args = arguments; 

Так, является ли это ложно-положительным или это часть кода, нарушающая строгий режим?

+0

Почему, по вашему мнению, это подтверждает правило? – dbarnes

+1

Я думаю, что это не нарушает строгий режим, вы можете его получить. – Mahdi

+1

Это не нарушает, вы можете проверить его самостоятельно в консоли в инструментах разработчика. – vorrtex

ответ

1

На основе ответов пользователей и некоторых исследований, Я нашел этот код (var args = arguments;) быть действительным, так как он не изменяя аргументы, но только присвоив его другой переменной.

Обратите внимание, что с args теперь указывает на arguments также не может быть изменено. Но его можно читать нормально.

Обновление:Fix will be available под новым выпуском Javascript plugin (1.5).

Смежные вопросы