如何"正确"格式化js核心元素?

时间:2015-02-01 04:30:06

标签: javascript formatting

我已经阅读了很多关于JavaScript格式和规则等的文章。但我的问题是如何格式化核心JavaScript元素(即函数,数组和对象)

通常对于函数我使用以下内容:

function myFunction(argument1 , argument2 , optionalargument3) {
    optionalargument3 === undefined ? optionalargument3 : "default value";
    return optionalargument1;
}

或:

var myFunction = function(argument1 , argument2 , optionalargument3) {
    optionalargument3 === undefined ? optionalargument3 : "default value";
    return optionalargument1;
}

但这是有争议的。对于我使用的对象:

var Car = {
    model        : undefined
    make         : "Sudan"
    MPG          : 7.5
    highway-mpg  : 11.5
};
当然,这是极具争议性的,大多数人使用不同的方法 对于for循环,我使用:

for(var i = 0; i < (array.length + 1); i++) {
    console.log(array[i]);
}

人们似乎也已经放弃了在对象或函数之前在列表中写出全局的想法。

例如:

var winMessage = "You Win!";
var loseMessage = "Loser!";
var cash = 0;
var intrest = null;

function randomInteger(low , high) {
    return Math.floor((Math.random())*(high-low))+low
}
var Car = {
    model        : undefined
    make         : "Sudan"
    MPG          : 7.5
    highway-mpg  : 11.5
};

是否有任何通用接受或一般“正确”方式来格式化您的JavaScript代码?

1 个答案:

答案 0 :(得分:0)

这主要取决于偏好,但在整个代码库中保持一致的风格非常重要,特别是如果您在团队中工作以提高代码的可读性。

您可以定义自己的风格,也可以采用现有风格,例如Google风格指南(https://google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml)或Crockfords(http://javascript.crockford.com/code.html)。

JavaScript具有自动分号插入功能,这意味着某些类型的格式化可能导致代码无法按预期工作,例如以下解释器将忽略对象字面值,因为它将插入分号直接在return关键字之后:

return
{
  name: "Foo"
};

在你的例子中

  

optionalargument3 === undefined ? optionalargument3 : "default value";

实际上并没有做任何事情,因为没有任何分配,但处理默认参数的一种很好的干净方法是使用

arg = arg === undefined ? "default value" : arg;

您可以使用语义相同且更清晰的版本:

arg = arg || "default value";