JavaScript 里 var x = i = 0 这个写法是什么意思呢?

2016-05-06 14:16:50 +08:00
 isbase
5045 次点击
所在节点    JavaScript
20 条回复
emric
2016-05-06 14:18:26 +08:00
var i = 0
var x = i
isbase
2016-05-06 14:20:33 +08:00
@emric 多谢
这种写法可读性太差了
audi
2016-05-06 14:22:25 +08:00
var a = b = c = d = 10
可读性多好
Jeremial
2016-05-06 14:22:37 +08:00
这种写法会导致 i 变成全局变量. 所以等同写法是这样的

i = 0
var x = i
adeweb
2016-05-06 14:23:12 +08:00
如果 i 在之前未定义,恭喜你,创建了一个全局变量
function abc(){var x=i=1;}
abc()
console.log(i) //1
dxwwym
2016-05-06 14:24:48 +08:00
js 不用 var 的都是全局变量?
morethansean
2016-05-06 14:25:00 +08:00
@emric
i = 0;
var x = i;
emric
2016-05-06 14:31:48 +08:00
@morethansean 嗡了一声醒了过来。 i 没有事先声明...
isbase
2016-05-06 14:32:51 +08:00
zwh8800
2016-05-06 14:33:50 +08:00
@dxwwym 对,除非在 strict 模式下
Biwood
2016-05-06 15:17:02 +08:00
糟糕的写法,最好不要这么写
hooluupog
2016-05-06 15:22:23 +08:00
我去。。
webbought
2016-05-06 15:52:56 +08:00
糟糕的写法,会隐式创建一个全局变量
hxtheone
2016-05-06 17:21:02 +08:00
@Jeremial 涨姿势了
ChiChou
2016-05-06 18:19:08 +08:00
@emric 不是 var i 哟,是全局的 i
DaraW
2016-05-06 21:27:47 +08:00
另外补充下,这个全局变量和用 var 声明的全局对象是有区别的, var 定义的不能被 delete ,这个隐式全局变量是可以被 delete 的
tcstory
2016-05-06 22:54:01 +08:00
额,虽然写了几个月时间的 js,但是我还是不懂这种语法,但是我也不想学这种语法,因为这样写出的程序就是垃圾
dphdjy
2016-05-07 10:43:47 +08:00
@tcstory 这是恶意黑吗~很多语言都有类似用法~
高阶语言的表达式更加强(e)大(xin)。。。看看 ES7 ,我已经不会 JavaScript 了
tcstory
2016-05-07 13:03:27 +08:00
@dphdjy 不算是黑它把? 我写代码力求表述清晰,不喜欢这种语法糖
InFaNg
2016-05-14 11:44:37 +08:00
@dxwwym 不用 var 的变量是不规范的,在严格模式里是无效的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/276753

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX