Следует ли использовать var, когда переменная уже является параметром (Javascript) - PullRequest
2 голосов
/ 28 октября 2011

У меня есть такая функция

function foo(x){
    if (typeof x === 'undefined'){
        var x = 123;
    }
}

нужен ли оператор var? JSlint жалуется, что variable x hides argument (вероятно, б / к Я определяю переменную в области действия оператора if.

Ответы [ 2 ]

4 голосов
/ 28 октября 2011

var не является необходимым, и на самом деле это ошибка.Вы должны использовать var для объявления новой переменной.Когда у функции есть аргумент x, она объявляется - передается ли ей значение или нет.

Кстати, в тех случаях, когда вы знаете, что переменная объявлена, но просто не знаете,присвоено значение или нет, вы можете написать x === undefined - используя typeof, и сравнение строк не требуется.

4 голосов
/ 28 октября 2011

Нет var здесь не нужен, и это на самом деле очень вводит в заблуждение. Модификатор var используется для выделения значения в текущей области функции. Следовательно, это наиболее полезно в начале метода или в худшем случае при первом использовании значения. Параметры всегда ограничиваются текущей функцией, поэтому она не имеет значения.

Использование его для последующего использования предлагает это первое использование / объявление значения. Это может вводить в заблуждение будущих разработчиков.

...