[英]Javascript - Do I need to use 'var' when reassigning a variable defined in the function's parameters?
我发现了'var'语句的许多定义,但大多数都是不完整的(通常来自入门指南/教程)。 如果变量和范围已在参数列表中声明,我应该使用'var'吗?
someFunc = function(someVar)
{
// Is it considered good practice to use 'var', even if it is redundant?
var someVar = cheese;
};
“我发现'var'语句有很多定义,但大多数都不完整。”
尝试这个(有点闷但希望完成:-)):var关键字声明一个新变量,将其绑定到当前词法范围,并将其提升到所述范围的顶部。 换句话说,变量将不存在于声明它的函数之外,并且将在函数内部执行任何语句之前声明。 函数参数隐式绑定到该函数的作用域,因此不需要var关键字。
不,输入执行范围时定义名称的顺序如下:
undefined
) arguments
(如果不存在,则带有arguments
值) undefined
) 这意味着在这段代码中, foo
引用了函数参数(可以很容易地改变):
function foo(foo) {
var foo;
alert(foo);
}
foo(1); // 1
如果您在foo
使用函数声明,那么该正文将覆盖所有其他声明。 另请注意,这意味着您可以执行此操作:
function foo(arguments) {
alert(arguments);
}
foo(); // undefined
foo(1); // 1
不要那样做。
不可以。在Javascript中,您可以随心所欲地使用函数参数。
考虑一下这个代码,您可以在整个Web上看到该代码,该代码用于使代码在标准和IE事件模型中工作:
function someEventHandler(event) {
event= (event) ? event : window.event;
// statements
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.