V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
isbase

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

  •  
  •   isbase ·
    PRO
    · May 6, 2016 · 5543 views
    This topic created in 3643 days ago, the information mentioned may be changed or developed.
    20 replies    2016-05-14 11:44:37 +08:00
    emric
        1
    emric  
       May 6, 2016
    var i = 0
    var x = i
    isbase
        2
    isbase  
    OP
    PRO
       May 6, 2016
    @emric 多谢
    这种写法可读性太差了
    audi
        3
    audi  
       May 6, 2016
    var a = b = c = d = 10
    可读性多好
    ik0r
        4
    ik0r  
       May 6, 2016   ❤️ 3
    这种写法会导致 i 变成全局变量. 所以等同写法是这样的

    i = 0
    var x = i
    adeweb
        5
    adeweb  
       May 6, 2016   ❤️ 1
    如果 i 在之前未定义,恭喜你,创建了一个全局变量
    function abc(){var x=i=1;}
    abc()
    console.log(i) //1
    dxwwym
        6
    dxwwym  
       May 6, 2016 via iPhone
    js 不用 var 的都是全局变量?
    morethansean
        7
    morethansean  
       May 6, 2016   ❤️ 1
    @emric
    i = 0;
    var x = i;
    emric
        8
    emric  
       May 6, 2016
    @morethansean 嗡了一声醒了过来。 i 没有事先声明...
    isbase
        9
    isbase  
    OP
    PRO
       May 6, 2016
    zwh8800
        10
    zwh8800  
       May 6, 2016   ❤️ 1
    @dxwwym 对,除非在 strict 模式下
    Biwood
        11
    Biwood  
       May 6, 2016
    糟糕的写法,最好不要这么写
    hooluupog
        12
    hooluupog  
       May 6, 2016
    我去。。
    webbought
        13
    webbought  
       May 6, 2016
    糟糕的写法,会隐式创建一个全局变量
    hxtheone
        14
    hxtheone  
       May 6, 2016
    @Jeremial 涨姿势了
    ChiChou
        15
    ChiChou  
       May 6, 2016
    @emric 不是 var i 哟,是全局的 i
    DaraW
        16
    DaraW  
       May 6, 2016
    另外补充下,这个全局变量和用 var 声明的全局对象是有区别的, var 定义的不能被 delete ,这个隐式全局变量是可以被 delete 的
    tcstory
        17
    tcstory  
       May 6, 2016
    额,虽然写了几个月时间的 js,但是我还是不懂这种语法,但是我也不想学这种语法,因为这样写出的程序就是垃圾
    dphdjy
        18
    dphdjy  
       May 7, 2016 via Android
    @tcstory 这是恶意黑吗~很多语言都有类似用法~
    高阶语言的表达式更加强(e)大(xin)。。。看看 ES7 ,我已经不会 JavaScript 了
    tcstory
        19
    tcstory  
       May 7, 2016
    @dphdjy 不算是黑它把? 我写代码力求表述清晰,不喜欢这种语法糖
    InFaNg
        20
    InFaNg  
       May 14, 2016 via Android
    @dxwwym 不用 var 的变量是不规范的,在严格模式里是无效的
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5580 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 81ms · UTC 01:27 · PVG 09:27 · LAX 18:27 · JFK 21:27
    ♥ Do have faith in what you're doing.