Javascript-我是否需要使用';var';重新分配函数中定义的变量时';s参数?
我已经找到了许多关于“var”语句的定义,但大多数都是不完整的(通常来自介绍性指南/教程)。如果变量和范围已在参数列表中声明,是否应使用“var”Javascript-我是否需要使用';var';重新分配函数中定义的变量时';s参数?,javascript,Javascript,我已经找到了许多关于“var”语句的定义,但大多数都是不完整的(通常来自介绍性指南/教程)。如果变量和范围已在参数列表中声明,是否应使用“var” someFunc = function(someVar) { // Is it considered good practice to use 'var', even if it is redundant? var someVar = cheese; }; 不可以。在Javascript中,您可以随意处理函数参数 考虑以下代码,您可
someFunc = function(someVar)
{
// Is it considered good practice to use 'var', even if it is redundant?
var someVar = cheese;
};
不可以。在Javascript中,您可以随意处理函数参数 考虑以下代码,您可以在Web上看到这些代码,它们用于使代码在标准和IE事件模型中工作:
function someEventHandler(event) {
event= (event) ? event : window.event;
// statements
}
答案是不,你不应该这样做这实际上被认为是一种不好的做法强> 分析代码示例时引发以下错误: 第5行的问题字符16:
someVar
已定义
不,输入执行范围时定义名称的顺序如下:
未定义
)参数
(如果不存在参数值)未定义的)
foo
指的是函数参数(很容易更改):
如果您在foo
中使用函数声明,则该主体将覆盖所有其他主体。另外,请注意,这意味着您可以执行以下操作:
function foo(arguments) {
alert(arguments);
}
foo(); // undefined
foo(1); // 1
不要这样做。“我找到了许多关于‘var’语句的定义,但大多数都不完整。”
试试这个(有点闷,但希望完成:-):var关键字声明一个新变量,将其绑定到当前词法范围,并将其提升到所述范围的顶部。换句话说,变量将不存在于声明它的函数之外&将在函数内部执行任何语句之前声明。函数参数隐式绑定到该函数的作用域,因此不需要var关键字。谢谢!这正是我需要知道的:PWho认为这是“坏习惯”?请不要说“JSLint有”(因为它还说没有额外分号的好代码是“糟糕的做法”)——只是寻找一些来源来支持这一说法,而不是说我会提出不同的观点;-)Thx,我不确定上面的代码是否正确或符合语言规则/标准代码>
function foo(arguments) {
alert(arguments);
}
foo(); // undefined
foo(1); // 1