我刚刚阅读了ES6的一些新功能,我喜欢很多新增内容,但是我很困惑为什么模板文字需要{}
和{{1}}来表示变量?它似乎过分,以至于它打破了它们的目的(为了节省空间和提高可读性)。我唯一的猜测是他们从php中汲取灵感,并想区别于两者。但是随着花括号的添加,你几乎不会节省更多的空间,而不是用旧的方式构建一个字符串!
答案 0 :(得分:2)
正如initial proposal中所述:
由于我们选择语法来减少学习曲线,因此我们选择了
${...}
,因为它用于允许PHP和JQuery模板中的任意嵌入式表达式。我们还包括缩写形式($ident
)以与Bash,Perl,PHP,Ruby等兼容。我们决定反对sprintf样式格式化,因为虽然广泛理解,它不允许许多DSL应用程序,并且施加O(n)认知负载(2)。
替代方案包括:
Bash:$(...)
Ruby:#{...}
正如我们今天所见,仅仅$expr
的短语法未被接受(可能是因为最初它专注于使用变量名,而不是任意表达式。)