做个调查,大家写 js 写分号么 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a Javascript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
Javascript 权威指南第 5 版
Closure: The Definitive Guide
Senevan
V2EX    Javascript

做个调查,大家写 js 写分号么

  •  
  •   Senevan 2016-06-13 00:04:20 +08:00 11745 次点击
    这是一个创建于 3407 天前的主题,其中的信息可能已经有所发展或是发生改变。
    Twitter 上因为这个又吵起来了= =
    我先说,我一直写分号
    第 1 条附言    2016-06-13 14:14:18 +08:00

    感觉还是写的人比较多,大体上写的原因主要有:

    • 怕出错
    • 写过C、java所以习惯加分号
    • 不写感觉一行没结束

    聊这个主要是我在看vue源码的时候发现它是不加分号的,比较好奇

    第 2 条附言    2016-06-13 14:16:40 +08:00
    对了还有根据 linter 决定写不写= =
    110 条回复    2016-06-14 13:13:20 +08:00
    1  2  
    hxtheone
        1
    hxtheone  
       2016-06-13 00:05:33 +08:00   1
    DoraJDJ
        2
    DoraJDJ  
       2016-06-13 00:08:26 +08:00 via Android   1
    之前写 Java 写习惯了,一直都写分号。
    如果没有分号很难判断这语句有完没完
    BOYPT
        3
    BOYPT  
       2016-06-13 00:08:36 +08:00
    写。然后看了不写派的说法好像很有道理,但是我已经忘了道理是啥……代码里面继续写
    BGLL
        5
    BGLL  
       2016-06-13 00:12:36 +08:00
    C++ 写习惯了,所以 Javascript 也写分号
    然而 Javascript 写了段时间,再写 C++ 发现其实时不时在漏分号.....
    broadliyn
        6
    broadliyn  
       2016-06-13 00:17:09 +08:00
    var xxx=xxxxx; //写分号

    var fx = function(){

    } //不写

    $(xxx).on('click',function(){

    }); //写



    。。。。。 java 写惯了。。
    liqingcan
        7
    liqingcan  
       2016-06-13 00:19:37 +08:00
    liqingcan
        8
    liqingcan  
       2016-06-13 00:19:51 +08:00
    不写总感觉少了点什么
    visonnn
        9
    visonnn  
       2016-06-13 00:22:00 +08:00
    写啊

    主要是给自己看的
    Mutoo
        10
    Mutoo  
       2016-06-13 00:24:07 +08:00
    写了一年 lua 之后,再写 Javascript 就经常忘记写分号。
    qqqppp9998
        11
    qqqppp9998  
       2016-06-13 00:28:29 +08:00 via iPhone
    不写
    johnhsm2333
        12
    johnhsm2333  
       2016-06-13 00:28:51 +08:00 via Android
    不写了
    ceoimon
        13
    ceoimon  
       2016-06-13 00:29:28 +08:00
    写与不写随意切换, Linter + formatter
    itlr
        14
    itlr  
       2016-06-13 00:29:42 +08:00
    配好了 linting 自己就不需要特别关注了,习惯上是写的,忘记了 linting 工具能发现就可以。
    milklee
        15
    milklee  
       2016-06-13 00:32:17 +08:00
    不写了
    Wangxf
        16
    Wangxf  
       2016-06-13 00:37:54 +08:00
    写,不写感觉少了点啥,而且压缩 js 的时候避免出错
    ChiangDi
        17
    ChiangDi  
       2016-06-13 00:39:52 +08:00 via Android
    本来是写得,后来经过仔细思考和实际体验之后决定不写了。
    yeyeye
        18
    yeyeye  
       2016-06-13 01:46:15 +08:00
    Tampermonkey 会有警告 如果不写
    YUX
        19
    YUX  
    PRO
       2016-06-13 01:48:07 +08:00
    Linter 让写就写
    df4VW
        20
    df4VW  
       2016-06-13 01:49:02 +08:00
    不写,然后 asi
    ericls
        21
    ericls  
       2016-06-13 02:15:44 +08:00 via iPhone
    不写
    shisaq
        22
    shisaq  
       2016-06-13 06:48:35 +08:00
    [jshint]( http://jshint.com/) 让写就写
    bumz
        23
    bumz  
       2016-06-13 07:17:13 +08:00
    凡是可以写分号的地方,都会写

    比如

    var a = function() {

    };

    do {

    } while (true);

    这样的好处是不必耗费脑力纠结语句有没有结束(人工在大脑中执行一次自动分号插入的机制有点烧)

    以及那个自动分号插入的机制有点坑,比如

    (function() {console.log('a')})()
    (function() {console.log('a')})()

    就会报错

    (function() {console.log('a')})();
    (function() {console.log('a')})();

    则不会。

    因此任何时候都写分号好处巨大,省略分号流毒深远啊
    bitkwan
        24
    bitkwan  
       2016-06-13 07:46:38 +08:00 via Android
    写啊… 写 php 习惯了… var 定义变量时都顺手加上 $了…然后又去了
    zcbenz
        25
    zcbenz  
       2016-06-13 07:48:32 +08:00
    写了好几年带分号的,转 Standard JS 以后就不带了。
    wwqgtxx
        26
    wwqgtxx  
       2016-06-13 08:01:49 +08:00 via Android
    写,主要是用 idea 写的,不写分号编辑器回提示的
    flydogs
        27
    flydogs  
       2016-06-13 08:13:52 +08:00
    不写总觉得别扭
    taijia
        28
    taijia  
       2016-06-13 08:17:07 +08:00 via Android
    写,不然压缩后会出现莫名其妙的错
    qqmishi
        29
    qqmishi  
       2016-06-13 08:41:18 +08:00 via Android
    写,不写等默认加的话有坑
    textworld
        30
    textworld  
       2016-06-13 08:47:15 +08:00
    不写的话,代码压缩的时候不是会出错么
    aivier
        31
    aivier  
       2016-06-13 08:48:56 +08:00
    不写的不是异教徒么?
    rekulas
        32
    rekulas  
       2016-06-13 09:04:59 +08:00   1
    除非是想极限压缩,否则都应该补完的,不写也能正常执行是 js 引擎的编译纠正机制

    现在很多大牛貌似推荐不写分号的风格,但我觉得在这之前首先得解决部分结构不写分号会异常的问题吧
    sheep3
        33
    sheep3  
       2016-06-13 09:10:37 +08:00 via Android
    写,习惯写 Java
    clino
        34
    clino  
       2016-06-13 09:15:19 +08:00
    不写 不明白为什么要写
    moe3000
        35
    moe3000  
       2016-06-13 09:19:18 +08:00
    既然是 Javascript 就按照 java 的习惯来呗 doge
    metrue
        36
    metrue  
       2016-06-13 09:20:21 +08:00
    自己是不写,可是公司的 eslint 统一配置,必须写。
    123s
        37
    123s  
       2016-06-13 09:25:41 +08:00
    以前不写,后来写。不写有时候会有问题
    tobeyouth
        38
    tobeyouth  
       2016-06-13 09:28:28 +08:00
    不写
    Rsl
        39
    Rsl  
       2016-06-13 09:28:36 +08:00
    开始 ES2015 后就不写了. 看起来感觉舒服了不少.
    cloverstd
        40
    cloverstd  
       2016-06-13 09:40:16 +08:00
    @Rsl 我也是,用 ES6 之后就不写分号了
    ayiis
        41
    ayiis  
       2016-06-13 09:43:48 +08:00
    代码不是一个人写的,为了兼顾水平不一致的队友以及后来的维护者,写分号
    而又因为有几种情况是必须写分号的,所以统一在所有情况下,写分号
    Haku
        42
    Haku  
       2016-06-13 09:46:34 +08:00
    不写,虽然很不爽不写,但我就是不写= =
    learnshare
        43
    learnshare  
       2016-06-13 09:58:55 +08:00
    代码是给人看的,写。机器执行不管这些东西
    wbt
        44
    wbt  
       2016-06-13 10:13:24 +08:00
    写。
    BruceYuan
        45
    BruceYuan  
       2016-06-13 10:15:45 +08:00
    正常都写吧,哪怕是 python 入门也会写吧
    lixiaohan
        46
    lixiaohan  
       2016-06-13 10:19:56 +08:00
    不写的话 有时候会犯一些很低级的错误,而且查错误的时候需要查半天, 到时候你就该骂自己蠢了,然后你就记住了, 以后就知道写了
    ljcarsenal
        47
    ljcarsenal  
       2016-06-13 10:21:16 +08:00
    不写 webpack 自动生成。。。。
    当然 不用 webpack 的话还是写吧 低版本浏览器某些情况下会报错
    M4ster
        48
    M4ster  
       2016-06-13 10:21:46 +08:00
    难道没人用 CoffeeScript ?
    cin
        49
    cin  
       2016-06-13 10:23:09 +08:00
    不写, 没分号的代码看着舒服.
    raistlin916
        50
    raistlin916  
       2016-06-13 10:28:01 +08:00
    写 react 的时候不写,其实还好
    smallpath
        51
    smallpath  
       2016-06-13 10:34:28 +08:00
    单人项目写, lint 工具的话要我怎么办我就怎么办
    xcatliu
        52
    xcatliu  
       2016-06-13 10:36:14 +08:00
    thinkmore
        53
    thinkmore  
       2016-06-13 10:36:15 +08:00
    按照 java 的标准来写 js 写习惯了
    unknownservice
        54
    unknownservice  
       2016-06-13 10:36:21 +08:00
    被坑一次之后现在强迫症必须要写...
    exoticknight
        55
    exoticknight  
       2016-06-13 10:39:04 +08:00
    跟团队,跟项目,尽量写
    之前一直写,最近的 vue 项目因为官方脚手架没写于是跟着不写
    Arrowing
        56
    Arrowing  
       2016-06-13 10:41:34 +08:00
    写,看别人不写很别扭。
    fds
        57
    fds  
       2016-06-13 10:44:38 +08:00
    tslint 设置成 "semicolon": [true, "never"], 然后就再也不写分号了。
    之前用 coffeescript 也不写。
    pppanda
        58
    pppanda  
       2016-06-13 10:46:55 +08:00
    以前写,现在不写了
    solodxg
        59
    solodxg  
       2016-06-13 10:57:11 +08:00
    以前写的 后来 http://standardjs.com/ 不写了
    b821025551b
        60
    b821025551b  
       2016-06-13 11:00:35 +08:00
    不写分号的是不是也不压缩呢
    yurivvvvv
        61
    yurivvvvv  
       2016-06-13 11:03:10 +08:00
    hkongm
        62
    hkongm  
       2016-06-13 11:09:45 +08:00
    浏览器写
    node 不写了
    lk920724
        63
    lk920724  
       2016-06-13 11:17:21 +08:00
    panlilu
        64
    panlilu  
       2016-06-13 11:20:56 +08:00
    airbnb 规范,写分号
    Strikeactor
        65
    Strikeactor  
       2016-06-13 11:22:48 +08:00
    zhenjiachen
        66
    zhenjiachen  
       2016-06-13 11:26:36 +08:00
    写,不过有时候会忘记。
    rupert
        67
    rupert  
       2016-06-13 11:31:02 +08:00 via iPhone
    好像说写分号的都没什么充分理由, 怕压缩出问题? 合格的压缩工具肯定会处理好分号问题的吧。 我只在( [ 前加分号,基本就碰到没什么问题了
    SuperMild
        68
    SuperMild  
       2016-06-13 11:41:54 +08:00
    这才知道 Standard JS ,貌似不错啊, No configuration ,不用烦了。
    nullizer
        69
    nullizer  
       2016-06-13 11:43:08 +08:00
    plqws
        70
    plqws  
       2016-06-13 11:44:48 +08:00
    airbnb 规范,所以写
    SuperMild
        71
    SuperMild  
       2016-06-13 11:46:04 +08:00
    Can you make rule X configurable?

    No. The point of _standard_ is to save you time by picking reasonable rules so you can spend your time solving actual problems. If you really do want to configure hundreds of _eslint_ rules individually, you can always use _eslint_ directly.
    xman99
        72
    xman99  
       2016-06-13 12:55:24 +08:00
    初学的时候 老师说可以不用写的, 我觉得还是写的格式好
    VmuTargh
        73
    VmuTargh  
       2016-06-13 12:57:42 +08:00
    写,不知道为什么每次调试总是提示没有分号不能用。

    @Mutoo 窝写 lua 也一直加分号,强迫症
    an168bang521
        74
    an168bang521  
       2016-06-13 13:01:36 +08:00
    写;
    如果不写的话,会有这条代码没写完的感觉;
    kiwi95
        75
    kiwi95  
       2016-06-13 13:03:06 +08:00
    写 Go 的时候不写,写 PHP 的时候写。。
    yhxx
        76
    yhxx  
       2016-06-13 13:03:25 +08:00   1
    一直都是写几个字母然后 TAB ,编辑器帮我补了分号就有,不补就没有
    (我这样的是不是要被分号党和不加分号党一起吊打
    saberlily
        77
    saberlily  
       2016-06-13 13:11:20 +08:00
    写啊
    Vonex
        78
    Vonex  
       2016-06-13 13:36:23 +08:00
    写,善始善终。
    yujieyu7
        79
    yujieyu7  
       2016-06-13 13:48:57 +08:00
    以前写,试过不写之后就回不去了,太爽了
    tairan2006
        80
    tairan2006  
       2016-06-13 13:59:01 +08:00
    js 写啊…因为看起来很 C
    think2011
        81
    think2011  
       2016-06-13 14:16:59 +08:00
    不再写了,因为看起来简洁,顺便提一下,如果不写问号,一定要注意在自运行函数前要加分号,不然要出错的。

    ```js
    let a = 1; // 不加分号要死

    (() => {
    console.log(a)
    })()
    ```
    cxbig
        82
    cxbig  
       2016-06-13 14:28:25 +08:00 via iPhone
    IDE 自动补全,无所谓写不写。
    sxm
        83
    sxm  
       2016-06-13 14:45:50 +08:00
    习惯写,我有强迫症
    wmhx
        84
    wmhx  
       2016-06-13 15:22:43 +08:00
    以前写 js 很随便, 有时写有时不写,好像也无所谓, 最近做一个项目用 java 解释执行 js 片段, 不加分号各种错误,而且提示各种脑残,尤其是 var a=function(){} 这样的没有分号 java 解析提示都是什么鬼啊, 后来,后来, 后不来我就不干这个项目了.
    tanteng
        85
    tanteng  
       2016-06-13 15:28:10 +08:00
    不写 IDE 老会提示,所以还是写
    fetich
        86
    fetich  
       2016-06-13 15:42:03 +08:00
    公司项目看规定,个人练手看心情。
    ug888168
        87
    ug888168  
       2016-06-13 16:48:25 +08:00 via Android
    习惯了写
    inet6
        88
    inet6  
       2016-06-13 17:08:11 +08:00
    我习惯了写分号
    solome
        89
    solome  
       2016-06-13 17:11:40 +08:00
    es6 风格的,不写~
    jason19659
        90
    jason19659  
       2016-06-13 17:23:05 +08:00
    想起来就写。。忘了就。。反正也能跑起来。对吧
    EchoWhale
        91
    EchoWhale  
       2016-06-13 17:26:53 +08:00 via Android
    不写,有 asi
    shyling
        92
    shyling  
       2016-06-13 17:45:07 +08:00
    @BruceYuan 是不是还要写:
    lslqtz
        93
    lslqtz  
       2016-06-13 17:46:40 +08:00
    @yhxx 打死打死 2333
    muyege
        94
    muyege  
       2016-06-13 18:29:28 +08:00
    擦!写就写,不写就不写,骗分党!
    zyue
        95
    zyue  
       2016-06-13 18:39:36 +08:00
    不写就难受斯基
    Wenwei
        96
    Wenwei  
       2016-06-13 18:51:14 +08:00
    ES6 写着写着就不写分号了。

    已经习惯不写分号了。
    marshalYuan
        97
    marshalYuan  
       2016-06-13 19:36:42 +08:00
    逗号哪里做的不好么,你们干嘛还要去找分号
    motai
        98
    motai  
       2016-06-13 20:49:54 +08:00
    记得就写,忘了就算了
    xifangczy
        99
    xifangczy  
       2016-06-13 23:02:26 +08:00
    不写难受...
    SourceMan
        100
    SourceMan  
       2016-06-13 23:20:00 +08:00 via iPhone
    楼上好多一看就是项目没有上 eslint
    我写多年的分号,转 ES6 之后建议不写,改了规则,不到 2 个星期,就被纠正过来了
    1  2  
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     909 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 55ms UTC 20:04 PVG 04:04 LAX 13:04 JFK 16:04
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86