我目前正在使用基于Douglas Crockford的Code Conventions for the JavaScript Programming Language的JavaScript编码风格,这意味着我在该函数的开头声明了函数中使用的所有变量:
function drawTiles(tiles) {
var x, y, tile;
for (x = 0; x < width; x++)
for (y = 0; y < weight; y++) {
tile = tiles[y][x];
if (tile)
drawTile(tile, x, y);
}
}
这是有道理的,因为JavaScript中的变量无论如何都被提升到函数和函数的顶部。
但是,我觉得在首次使用时声明它们会更受欢迎,如下所示:
function drawTiles(tiles) {
for (var x = 0; x < width; x++)
for (var y = 0; y < height; y++) {
var tile = tiles[y][x];
if (tile)
drawTile(tile, x, y);
}
}
这实际上更容易使用IMO - 您无需在声明新变量时跳转到当前函数的顶部。但它感觉不对“。”
我的问题是:哪种风格在专业(和流行)JavaScript程序员中更受欢迎? (我通常会尝试选择社区中最常用的代码样式)
我看了几个开源项目(Google的Closure,Facebook的Phabricator,Facebook JS SDK和jQuery),似乎所有(jQuery除外)声明变量大多数时候第一次使用的时候。 jQuery倾向于将它们声明为函数的顶部,但绝不一致。
答案 0 :(得分:1)
我认为第二种风格很受欢迎,因为这是你在大多数其他语言中的表现,即声明变量在哪里使用。
ECMAScript的未来版本将通过let
关键字引入块范围,这可能会改变人们编写JS的方式(更倾向于第二种风格)。
但除此之外,如果你保持你的功能很小,那真的变成了品味。