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

2016 年 5 月 6 日
 isbase
5805 次点击
所在节点    JavaScript
20 条回复
emric
2016 年 5 月 6 日
var i = 0
var x = i
isbase
2016 年 5 月 6 日
@emric 多谢
这种写法可读性太差了
audi
2016 年 5 月 6 日
var a = b = c = d = 10
可读性多好
ik0r
2016 年 5 月 6 日
这种写法会导致 i 变成全局变量. 所以等同写法是这样的

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

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

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

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

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

© 2021 V2EX