为什么ES6使用$ AND括号来表示模板文字?

时间:2016-04-14 04:00:39

标签: ecmascript-6

我刚刚阅读了ES6的一些新功能,我喜欢很多新增内容,但是我很困惑为什么模板文字需要{}和{{1}}来表示变量?它似乎过分,以至于它打破了它们的目的(为了节省空间和提高可读性)。我唯一的猜测是他们从php中汲取灵感,并想区别于两者。但是随着花括号的添加,你几乎不会节省更多的空间,而不是用旧的方式构建一个字符串!

1 个答案:

答案 0 :(得分:2)

正如initial proposal中所述:

  

由于我们选择语法来减少学习曲线,因此我们选择了${...},因为它用于允许PHP和JQuery模板中的任意嵌入式表达式。我们还包括缩写形式($ident)以与Bash,Perl,PHP,Ruby等兼容。

     

我们决定反对sprintf样式格式化,因为虽然广泛理解,它不允许许多DSL应用程序,并且施加O(n)认知负载(2)。

     

替代方案包括:
  Bash:$(...)
  Ruby:#{...}

正如我们今天所见,仅仅$expr的短语法未被接受(可能是因为最初它专注于使用变量名,而不是任意表达式。)