V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
inSpring
V2EX  ›  React

兄弟们, JS/TS 里字符串用 单引号 or 双引号呢? 你们公司对这个有规范吗?

  •  
  •   inSpring · 2024-02-28 17:11:17 +08:00 · 7628 次点击
    这是一个创建于 367 天前的主题,其中的信息可能已经有所发展或是发生改变。
    55 条回复    2024-03-01 12:08:45 +08:00
    for8ever
        1
    for8ever  
       2024-02-28 17:14:28 +08:00
    单引号
    defunct9
        2
    defunct9  
       2024-02-28 17:14:56 +08:00
    单引号
    sweetcola
        3
    sweetcola  
       2024-02-28 17:16:28 +08:00
    单引号或者反单引号
    thinkershare
        4
    thinkershare  
       2024-02-28 17:17:27 +08:00
    TSLint/ESLint 选择一个,制定一下团队的编码规范(选取最大公约数),提交到公司仓库跑一个 pipeline 做一个代码规范检测不久好了嘛。
    我们目前前端规范是: 全部使用单引号或者`, 尽量避免"。
    jackrebel
        5
    jackrebel  
       2024-02-28 17:20:30 +08:00
    我们曾经为了干掉"而干过一个老油条。 见血的那种
    lisongeee
        6
    lisongeee  
       2024-02-28 17:32:27 +08:00
    单引号的字符串在中间使用微软拼音输入法时,由于输入法字母间隔符是单引号,会导致编辑器语法错误/高亮失效

    双引号还得多按一个 shit 键

    反引号导致复制粘贴的时候不是合法的 JSON/JSON5 对象,转换配置的时候不好弄

    各有优缺点,如果微软拼音能改这个输入间隔符,那就是单引号了
    dengshen
        7
    dengshen  
       2024-02-28 17:36:17 +08:00 via iPhone
    设定团队代码风格,然后按个人风格开发。提交时记得用 prettier 按团队的风格格式化一下就行。 靓仔
    StrangerA
        8
    StrangerA  
       2024-02-28 17:38:12 +08:00
    在 eslint 中配好 prettier 插件,代码风格直接让 prettier 定,让团队成员配置 IDE 在保存时用 eslint 格式化就好。
    visper
        9
    visper  
       2024-02-28 17:41:40 +08:00
    一会单引号一会双引号,同一个数组里面的字符串有些单引号有些双引号
    l4ever
        10
    l4ever  
       2024-02-28 17:55:32 +08:00   ❤️ 7
    prettier 配置的是啥就是啥.
    isa
        11
    isa  
       2024-02-28 18:01:44 +08:00
    统一规范就行了, 不过一般都偏好单引号
    Kenmin
        12
    Kenmin  
       2024-02-28 18:05:59 +08:00
    一般都是格式化工具接管,不过我个人更倾向双引号——做 i18n 能省不少头发,欧陆诸语用单引号的频次……
    zsh2517
        13
    zsh2517  
       2024-02-28 18:43:40 +08:00
    我们是单引号(适用范围:ts, js, jsx, tsx ,不包括 HTML )。当且仅当需要插入变量的时候使用反引号,即 `a = ${a}` 这样。

    不过这个东西反正就算有漏的,eslint --fix 直接自动修复,无所谓了
    ajax10086
        14
    ajax10086  
       2024-02-28 19:12:31 +08:00
    单引号,一些搞 Java 的同事写前端代码的时候喜欢用双引号
    importmeta
        15
    importmeta  
       2024-02-28 19:17:04 +08:00
    单引号,好多知名的国外的库也用单引号。
    dahaoyoubeifeng
        16
    dahaoyoubeifeng  
       2024-02-28 19:17:40 +08:00
    前端工程师一般就是单引号,后端工程师一般就是双引号
    Quarter
        17
    Quarter  
       2024-02-28 19:27:25 +08:00 via iPhone
    双引号
    K120
        18
    K120  
       2024-02-28 20:48:39 +08:00
    单引号,双引号还要按 shift 麻烦,单引号看上去更简洁。
    wusheng0
        19
    wusheng0  
       2024-02-28 21:06:40 +08:00 via Android
    双引号。
    现在格式化工具自动了,因为多按 shift 用单引号没必要
    jisuowei
        20
    jisuowei  
       2024-02-28 21:14:51 +08:00
    双引号留给 HTML
    7gugu
        21
    7gugu  
       2024-02-28 21:25:53 +08:00
    双引号和单引号混用,这个东西又不影响产物,能用就行了啦
    alanhe421
        22
    alanhe421  
       2024-02-28 21:48:47 +08:00
    Track13
        23
    Track13  
       2024-02-28 22:23:13 +08:00 via Android
    单引号,不写分号路过。
    然后 prettier 转成双引号并且添加分号(其他人接受不了,没办法)
    LeeReamond
        24
    LeeReamond  
       2024-02-29 01:24:51 +08:00
    你们项目不用 lint 的吗。。
    Ackvincent
        25
    Ackvincent  
       2024-02-29 08:25:12 +08:00
    单引号或者反单引号
    wangtian2020
        26
    wangtian2020  
       2024-02-29 08:59:03 +08:00
    单双引号都不用,我全用模板字符串(` `)
    wangtian2020
        27
    wangtian2020  
       2024-02-29 08:59:09 +08:00
    单双引号都不用,我全用模板字符串(`
    lyxxxh2
        28
    lyxxxh2  
       2024-02-29 09:16:30 +08:00
    没注意,不过我个人倾向与单引号。
    只需按一下,认真的话,单引号也更顺眼。

    能用 eslint 格式化,就没有遵不遵守问题了。
    lyxxxh2
        29
    lyxxxh2  
       2024-02-29 09:17:59 +08:00
    @jackrebel
    "就是"左脚先进公司"吧
    ohoh
        30
    ohoh  
       2024-02-29 09:23:35 +08:00
    新项目 prettier 统一配置双引号, 与后端语言一致, 解决意见分歧. 虽然双引号要多敲一个 shfit, 但是既然配置了 prettier, 其实你写代码直接敲单引号, 格式化自动帮忙转了就行. 没有什么心理负担
    realJamespond
        31
    realJamespond  
       2024-02-29 09:37:12 +08:00
    双引号,因为 c++,java,go 都用为无缝切换适应
    biidbiid
        32
    biidbiid  
       2024-02-29 09:39:28 +08:00 via iPhone
    单引号
    sjhhjx0122
        33
    sjhhjx0122  
       2024-02-29 09:40:12 +08:00
    都一样反正有 prettier 保存自动格式化
    sleepybear1113
        34
    sleepybear1113  
       2024-02-29 09:40:54 +08:00
    本人 Java 后端,因为 Java 中用的是 双引号,所以为了统一,js 中也是全量 双引号。但是看一开始就接触前端的人都是用的单引号,有过后端的可能会选择双引号?
    LandCruiser
        35
    LandCruiser  
       2024-02-29 09:41:38 +08:00
    无所谓,脚本语言你爱用啥用啥,既不影响最终结果,也不影响阅读。顶多影响某菜鸟的心情而已。。。
    tedding
        36
    tedding  
       2024-02-29 09:53:17 +08:00
    huijiewei
        37
    huijiewei  
       2024-02-29 09:59:13 +08:00
    以前一直用单引号,但是新项目 prettier 没做任何配置,默认双引号了
    justdoit123
        38
    justdoit123  
       2024-02-29 10:11:02 +08:00
    随意。prettier 配置好,加上 githook ,让它自动去 format 。

    纯前端团队,建议单引号,毕竟不用按 Shift 。 夸语言团队,可以使用 双引号。在一些语言里,单引号表示 char ,双引号表示字符串。
    qqqtz
        39
    qqqtz  
       2024-02-29 10:19:57 +08:00
    全部用 template string🤣
    pkoukk
        40
    pkoukk  
       2024-02-29 10:32:19 +08:00
    不知道用什么规范就从 github 上抄一个流行的
    然后一切按规范走,不然自定义村规真的很蠢,而且很容易扯皮
    newaccount
        41
    newaccount  
       2024-02-29 10:53:15 +08:00   ❤️ 1
    与是否多按一个 shift 无关
    古早年代,html 标签的属性里面经常写一些 js ,而 html 的属性通常使用双引号,里面写 js 自然使用单引号避免需要转意字符
    这个习惯向外扩展,演变成写 js 的时候使用单引号,在 js 中拼接的 html 使用双引号
    没啥特别规则,单纯为了好记,html 双引号、js 单引号
    ClarkAbe
        42
    ClarkAbe  
       2024-02-29 11:07:33 +08:00
    肯定双引号, 不光在 Javascript, 其他语言也一样...而且单引号在 Golang 里面表示字节, 万一养成坏习惯就...
    laoona
        43
    laoona  
       2024-02-29 11:14:12 +08:00
    @jackrebel 老哥,够狠。我们也是要求使用单引号,提交时,eslint + prettier 检测
    liuzhaowei55
        44
    liuzhaowei55  
       2024-02-29 11:37:04 +08:00 via Android
    现在单引号用的多一些,但 vscode 中 tailwindcss 针对单引号不会弹出 tips ,不知道怎么能配置下
    daliusu
        45
    daliusu  
       2024-02-29 12:03:02 +08:00
    都 2024 年了,这种东西有个鸡毛争论,还按键多不多一个都出来了,你们是不用 eslint 还是不用 prettier ? 多双不都根据规则自动变了吗
    shimada666
        46
    shimada666  
       2024-02-29 12:38:49 +08:00
    我是 eslint 引 antfu 的规范然后直接用
    xu455255849
        47
    xu455255849  
       2024-02-29 13:45:34 +08:00   ❤️ 1
    思考这种事情都是浪费时间 并不会让你多涨一毛工资 多赚一块钱
    如果是团队能用工具规范的就用工具
    如果你是个人开发,那就以你为准
    Mexion
        48
    Mexion  
       2024-02-29 14:57:45 +08:00
    个人偏好使用双引号
    Roojay
        49
    Roojay  
       2024-02-29 16:02:51 +08:00   ❤️ 1
    习惯 HTML 属性值使用双引号 ” ,对 JS 字符串使用单引号 ’,例如:
    var button = $('<button type="button" class="btn btn-primary">Primary</button>');
    xzh654321
        50
    xzh654321  
       2024-02-29 17:00:06 +08:00
    双引号
    libook
        51
    libook  
       2024-02-29 17:16:49 +08:00
    个人习惯:
    - 字符串用单引号
    - 有模板需求用反引号
    - 代码中的 JSON 片段,字段名和字符串值用双引号
    ajan
        52
    ajan  
       2024-02-29 18:07:37 +08:00
    单引号
    gibber
        53
    gibber  
       2024-03-01 08:39:19 +08:00
    @libook 后面两点不是语法强制要求的吗
    yichengxian
        54
    yichengxian  
       2024-03-01 10:22:21 +08:00
    单包双,如果你要在双引号里面放双引号就不行了,所以建议单引号
    xiangyuecn
        55
    xiangyuecn  
       2024-03-01 12:08:45 +08:00
    科学做法当然是:str="123"+aa+'abc'+bb+`456` 增加被替代成本。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2681 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 07:34 · PVG 15:34 · LAX 23:34 · JFK 02:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.