当变量已经是一个参数时,是否应该使用var (Javascript)

Should var be used when variable is already a parameter (Javascript)

本文关键字:Javascript 是否 var 一个 变量 参数      更新时间:2023-09-26

我有一个这样的函数

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

需要var语句吗?JSlint抱怨variable x hides argument(可能是b/c)我在if语句的范围内定义了一个变量。

var是不必要的,事实上这是一个错误。您应该使用var来声明一个新变量。一旦函数有了参数x,它就被声明了——不管它是否传递了一个值。

顺便说一下,在这种情况下,当你知道变量被声明,但只是不知道它是否被赋值,你可以写x === undefined -使用typeof和字符串比较是不必要的。

这里不需要var,它实际上非常具有误导性。var修饰符用于将值限定在当前函数范围内。因此,它在方法的顶部最有用,或者在最坏的情况下在值的第一次使用时最有用。形参总是限定在当前函数的范围内,因此它没有值。

后续使用表明这是该值的第一次使用/声明。这可能会误导未来的开发者。