推荐关注
› Meteor
› JSLint - a JavaScript code quality tool
› jsFiddle
› D3.js
› WebStorm
推荐书目
› JavaScript 权威指南第 5 版
› Closure: The Definitive Guide
n37r06u3

js 如何优雅的拼接 字符串

  •  
  •   n37r06u3 · Jul 30, 2014 · 12154 views
    This topic created in 4479 days ago, the information mentioned may be changed or developed.
    最近写个前端界面

    要用js来动态添加input

    发现写长了就乱了 改起来也麻烦

    大家一般用什么方法?
    23 replies  •  2014-07-31 11:13:27 +08:00
    TangMonk
    TangMonk
    Jul 30, 2014
    1
    不是有个handlebars模板引擎吗
    Tonni
    Tonni
    Jul 30, 2014❤️8
    2
    现在看到如何优雅的XXX就觉得恶心,这是病么?
    PS:如果字符串过长,直接把模板写到HTML的script标签里面,属性设置为"text/template",然后直接用jQuery的html()方法取字符串,如果涉及到模板变量、逻辑语句的话就换underscore试试,
    wesley
    wesley
    Jul 30, 2014
    3
    dom最优雅
    nocoo
    nocoo
    Jul 30, 2014
    4
    var cache = [];
    cache.push('a');
    cache.push('b');
    cache.push('c');
    var result = cache.join(''); // abc
    n37r06u3
    n37r06u3
    OP
    Jul 30, 2014
    5
    @TangMonk 用的django 模板 要冲突了
    n37r06u3
    n37r06u3
    OP
    Jul 30, 2014
    6
    @Tonni underscore 不错
    spark
    spark
    Jul 30, 2014 via iPhone
    7
    str = "Say #{hello}"

    这种如何?Coffee
    hkongm
    hkongm
    Jul 30, 2014❤️1
    8
    push过时了。。。

    俺用
    var str = '\
    <div> \
    </div> \
    ';
    Sivan
    Sivan
    Jul 30, 2014
    9
    可以用模板的话最方便。push 相对「优雅」,但拼字符串可能是最快的。
    bombless
    bombless
    Jul 30, 2014
    10
    看标题还在想加号难道还不够你用么…

    也许你是需要一个模板库…
    rekey
    rekey
    Jul 30, 2014
    11
    @Tonni 赞恶心优雅的 XXX
    vvtommy
    vvtommy
    Jul 30, 2014
    12
    嗯… 之前做过测试,juicer最快。
    lsongdev
    lsongdev
    Jul 30, 2014 via iPhone❤️1
    13
    tamamaxox
    tamamaxox
    Jul 30, 2014
    14
    handlebars coffee
    izoabr
    izoabr
    Jul 30, 2014
    15
    @Tonni 赞+1
    fuxkcsdn
    fuxkcsdn
    Jul 30, 2014
    16
    [
    "<div>",
    "<input type='text' />",
    " </div>"
    ].join('');
    看起来还算“优雅”
    dant
    dant
    Jul 30, 2014 via iPhone
    17
    这浓浓的知乎风是怎么回事。。
    dreampuf
    dreampuf
    Jul 31, 2014
    18
    如果把优雅换成 best practice 大家会不会容易接受点?或者用“地道、接地气”?

    V2EX里出现“优雅”的发问比知乎早很多
    https://www.google.com/search?q=site:v2ex.com/t%20%E4%BC%98%E9%9B%85&gws_rd=ssl

    =====

    Coffee 的内嵌语法无疑是最优美的,拼接的糙活儿都给你做了。
    反斜杠只是解决了将一行字符串分成多行,没有解决拼接的问题。
    Array.push 方法在语法层面利用数组特性避免了连接符号,但是带来的开销是非常慢(真的非常慢,现代浏览器都会对静态字符串做优化 http://jsperf.com/string-concatenation/79 )
    multiline利用注释和Function.toString做的小把戏,如果有一些预处理(UglifyJS)会影响结果。

    最佳实践都是日常积累而来,如果光问个结论可能不会让自己收获多少,也许这就是人们反感“优雅的XXX”的原因。
    Venshy
    Venshy
    Jul 31, 2014
    19
    用过mustache,蛮好用的。underscore还躺在starred
    abelyao
    abelyao
    Jul 31, 2014❤️1
    20
    ChiChou
    ChiChou
    Jul 31, 2014
    21
    @abelyao 黑科技~
    sxd
    sxd
    Jul 31, 2014
    22
    @song940 你这个和 sindresorhus 的有什么区别?
    lsongdev
    lsongdev
    Jul 31, 2014
    23
    @sxd 是他给我灵感, 这个库只能在 Nodejs 下, 而我只是做了 浏览器端和 Nodejs 端的兼容 . 另外尽量简单实用 .
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2341 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 53ms · UTC 15:32 · PVG 23:32 · LAX 07:32 · JFK 10:32
    ♥ Do have faith in what you're doing.