我试图使我的JavaScript符合从函数返回值的最佳实践。当前,我声明一个变量,在函数中处理该变量,然后将其返回。我认为明确声明状态是个好习惯,但是我想知道这是否只是我的神话,还有更好的方法。那么,这两种方法中的哪一种,或者什至都不是,哪一种是最好的?谢谢
范例A:
function foo( a ){
var str = "";
if (a == "bar"){
str = "barbar";
} else {
str = "foofoo";
}
return str;
}
范例B:
function foo( a ){
if (a == "bar"){
return "barbar";
} else {
return "foofoo";
}
}
在Javascript中,B的性能改进非常小,如示例A所示,您str
必须在本地范围中查找3次附加变量(初始化,设置一个或其他值,然后返回)。
示例A实际上是类似这样的内容(请注意,您实际上不能显式访问本地对象,var
您声明的任何对象都会自动在其上):
function foo( a ){
local["str"] = "";
if (a == "bar"){
local["str"] = "barbar";
} else {
local["str"] = "foofoo";
}
return local["str"];
}
但是,您需要多次击中它才能看到不同之处-它几乎可以忽略不计,并且可能在最新的优化Javascript引擎中被完全消除(在更好的浏览器中可以看到)。我很确定Chrome的V8引擎可以。
除此之外,这是编码风格的问题-许多团队更喜欢A,因为您可以戴手表str
并始终知道它的用途。就我个人而言,我更喜欢B,因为它更斯巴达式的,并且因为我发现短路逻辑更容易遵循,但是许多开发人员不喜欢它,因为如果他们早早错过了,return
他们会发现难以发现的错误。
这确实是一个“家庭风格”的问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句