Col*_*ein 83 javascript variables
在声明一组变量而不是分号时使用逗号有什么区别和/或优点(如果有的话).
例如:
var foo = 'bar', bar = 'foo';
Run Code Online (Sandbox Code Playgroud)
与
var foo = 'bar';
var bar = 'foo';
Run Code Online (Sandbox Code Playgroud)
我知道如果你var
在第一个例子中的第一个变量上指定关键字,它会持久化所有变量,因此它们都会产生与范围相同的最终结果.这只是个人偏好,还是以任何方式做到这都有性能优势?
Ode*_*ded 69
没有性能优势,仅仅是个人选择和风格.
第一个版本更简洁.
更新:
就通过网络传输的数据量而言,当然越少越好,但是var
为了看到真正的影响,你需要大量的删除声明.
有人提到缩小是第一个例子有助于更好地缩小的东西,然而,正如Daniel Vassallo在评论中指出的那样,一个好的缩小器会自动为你做这件事,所以在这方面没有任何影响.
Fel*_*lix 26
在读完Crockford和其他人之后,我开始用逗号将变量链接起来.然后,我真的对Chrome DevTools调试器感到恼火,它不会停止使用逗号定义变量.对于调试器,使用逗号链接的变量定义是单个语句,而多个var语句是调试器可以停止的多个语句.因此,我改回:
var a = doSomethingA,
b = doSomethignB,
c = doSomethingC;
Run Code Online (Sandbox Code Playgroud)
至:
var a = doSomethingA;
var b = doSomethignB;
var c = doSomethingC;
Run Code Online (Sandbox Code Playgroud)
到目前为止,我发现第二个变体更清晰,更不用说它解决调试器问题的优势了.
"通过电线的代码较少"这一论点并不具有说服力,因为有缩小器.
Mar*_*eis 16
我更喜欢这种var-per-variable
符号:
var a = 2
var b = 3
Run Code Online (Sandbox Code Playgroud)
因为其他comma-instead-of-another-var
符号有这三个缺点:
1.难以维护
请考虑以下代码:
var a = 1,
b = mogrify(2),
c = 3
Run Code Online (Sandbox Code Playgroud)
但是,嘿,mogrify做了什么?让我们打印b来找出:
var a = 1,
b = mogrify(2),
console.log(b)
c = 3
Run Code Online (Sandbox Code Playgroud)
打破东西
2.难以阅读
线路乞讨中的变量清楚地表明将启动一个新变量.
var get_all_unicorn_promise = db.get_all_unicorns((unicorn) => {
unicorn.legs.map((leg) => {
leg.log('yes')
})
}).sort(),
c = 3
Run Code Online (Sandbox Code Playgroud)
那到底在c = 3
做什么呢?
3.不一致
考虑一下:
var a = 1,
b = 2,
c = 3
Run Code Online (Sandbox Code Playgroud)
随着var-per-variable
每一个声明遵循相同的结构.随着comma-instead-of-another-var
第一个变量比其他不同的方式申报.如果您决定在for循环中移动第一个变量,则必须在声明的中间添加var
除了偏好之外,似乎大多数值得注意的项目都使用var-per-variable
符号
我同意其他的回答者,这主要是个人风格的问题.但是为了在讨论中引入"权威"意见,Douglas Crockford 在流行的JSLint工具的网站上说道:
但是因为JavaScript没有块范围,所以在函数顶部声明所有函数的变量是明智的.建议每个函数使用一个var语句.这可以通过
onevar
选项强制执行.
归档时间: |
|
查看次数: |
35720 次 |
最近记录: |