我经常看到Javascript程序员做这样的事情:
function(index, input) {
var $input;
$input = $(input);
return $input.data('foo', 'bar');
}
Run Code Online (Sandbox Code Playgroud)
虽然我想要做的是这样的事情:
function(index, input) {
var $input = $(input);
return $input.data('foo', 'bar');
}
Run Code Online (Sandbox Code Playgroud)
或者在这个特殊情况下,实际上这个:
function(index, input) {
return $(input).data('foo', 'bar');
}
Run Code Online (Sandbox Code Playgroud)
在一行上声明'var',然后再分配给它们有什么价值?在我看来,添加额外的行只会导致可能的问题(例如,有人可能忘记添加'var'并意外地产生全局变量).那么为什么这样呢?
这只是某种编码约定(可读性,可能吗?),还是有一些关于JavaScript如何在内部工作的一些繁琐的事情,这使得这个结构在某种程度上更有效?
在这个简单的例子中,它没有我能说的那么多.但是在javascript中,首先评估函数体中的var声明.所以在函数顶部添加所有var声明很有意义,如果它们仅在以后使用它们也是如此.
a = "GLOBAL";
function x(){
console.log(a);
var a = "VAR";
console.log(a);
}
x()
Run Code Online (Sandbox Code Playgroud)
将打印
undefined
VAR
Run Code Online (Sandbox Code Playgroud)
并不是
GLOBAL
VAR
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
86 次 |
| 最近记录: |