Javascript 个变量一次:性能与可读性
Javascript variables once : Performance vs Readability
我想知道 Javascript 与可读性的表现。我们过去常常在函数中声明只使用一次的变量,以使我们的代码尽可能具有可读性。
例如,我们有这段代码使用 npm 包 MySQL,它使用字符串和对象参数清理和执行查询:
function doSomething ( somethingId = null ) {
if ( !somethingId ) return false
const sql = "SELECT * FROM something WHERE somethingId = :somethingId"
const params = { somethingId }
return db.query(sql, params)
}
所以我想缩小代码以获得这样的东西:
function doSomething ( somethingId = null ) {
return ( !somethingId )
? false
: db.query("SELECT * FROM something WHERE somethingId = :somethingId", { somethingId })
}
关键是我想知道这是否会改变性能?因为我认为声明变量是有代价的,绕过它会更快……但是我们会失去可读性……
你怎么看?
您几乎应该始终优先考虑可读性,因为您所描述的性能提升几乎微不足道。
可读性的问题是人们太容易把注意力集中在细节上,比如额外的变量、空格等,而在这个过程中却忽略了房间里的大象。可读性只是代码质量的一个组成部分。正如 Thom Holwerda 所说,质量可以表示为与 WTFs/minute:
的数量成反比
我想知道 Javascript 与可读性的表现。我们过去常常在函数中声明只使用一次的变量,以使我们的代码尽可能具有可读性。
例如,我们有这段代码使用 npm 包 MySQL,它使用字符串和对象参数清理和执行查询:
function doSomething ( somethingId = null ) {
if ( !somethingId ) return false
const sql = "SELECT * FROM something WHERE somethingId = :somethingId"
const params = { somethingId }
return db.query(sql, params)
}
所以我想缩小代码以获得这样的东西:
function doSomething ( somethingId = null ) {
return ( !somethingId )
? false
: db.query("SELECT * FROM something WHERE somethingId = :somethingId", { somethingId })
}
关键是我想知道这是否会改变性能?因为我认为声明变量是有代价的,绕过它会更快……但是我们会失去可读性……
你怎么看?
您几乎应该始终优先考虑可读性,因为您所描述的性能提升几乎微不足道。
可读性的问题是人们太容易把注意力集中在细节上,比如额外的变量、空格等,而在这个过程中却忽略了房间里的大象。可读性只是代码质量的一个组成部分。正如 Thom Holwerda 所说,质量可以表示为与 WTFs/minute:
的数量成反比