在JavaScript中无论场景都使用模板字面量` `而非""或''是否属于不良实践?
而非""或''是否属于不良实践? 嘿,作为刚入门JavaScript的新手,有这个“一步到位”的想法太正常了——毕竟模板字面量看起来能省掉以后要加插值时改引号的麻烦,对吧?不过咱们客观说:完全不管场景全用模板字面量,算不上“严重的不良实践”,但确实有几个值得留意的小细节,给你唠明白:
可读性与团队协作的小问题
要是你自己写小项目、练手代码,怎么顺手怎么来没人说啥,但如果是和团队一起干活,问题就来了。大部分团队都会有代码规范,比如约定普通无插值的字符串用单引号(')或双引号("),只有需要${}插值的时候才用模板字面量。这时候你全用反引号,队友看到const name =Alice``这种代码,第一反应可能是“等等,这里是不是藏了我没看到的插值?” 平白多了点没必要的心智负担,反而降低了代码的可读性。容易踩的语法小陷阱
模板字面量的反引号本身如果要出现在字符串里,必须用反斜杠转义(\),比如const note =Don't forget to wrap code in `backticks`;;但如果用单引号的话,直接写const note = 'Don\'t forget to wrap code inbackticks';(单引号里的反引号不需要转义),反而更省事。
另外,模板字面量会原样保留换行和空格,比如你不小心换行写了:const text = `Hello there`;这个字符串里是自带换行符的,但如果是单引号的话,
'Hello there'就是纯空格分隔,新手很容易不小心引入多余的空白字符,导致莫名其妙的bug。性能?几乎可以忽略
很多人会纠结性能,但现在现代浏览器的JS引擎优化得非常好,普通字符串用模板字面量还是单双引号,性能差距微乎其微,完全不用作为主要考虑因素。
最后给你个实在的建议:自己练手的时候,怎么顺手怎么来;要是进团队或者写需要别人维护的代码,最好跟着团队的规范走——毕竟代码是写给人看的,顺畅的协作比个人习惯更重要~
备注:内容来源于stack exchange,提问作者user28062067

