美元符号和花括号在HTML脚本标签外包含Javascript块的含义。

5

我目前正在阅读 'Javascript Web Applications' (O'Reilly, Alex MacCaw) 这本书,早期有一段代码片段,看起来可能会在HTML文档中执行JS函数,但它并没有被<script>标签包围:

// template.html
<div>
  <script>
    function doSomething(aParam) {
      /* do stuff ... */
    };
  </script>
  ${ doSomething(this.someX) }
</div>

请问有人能够友好地解释美元符号大括号符号表示法吗?我正在学习JS,以前从未见过这种表示法,所以我猜测它可能是JS代码执行的速记(如果是,为什么没有终止分号?),或者可能是某些专有的模板标记(Ruby?PHP?),或者完全是其他东西?
谢谢。 更新 后来在本书的第5章中,我们被介绍了Javascript模板。作者似乎认为读者在阅读本书之前就已经遇到了这种模板技术。正如Stackoverflow成员Esailija所指出的那样,这本书不是JavaScript的初学者指南;我应该补充说,我正在与 'JavaScript:The Good Parts'(O'Reilly,Douglas Crockford)等书籍一起阅读此书。 我曾经怀疑过某种类型的模板,但我没有考虑过纯JS模板。我以前使用过PHP和RoR框架,它们也使用类似的模板概念将模型数据注入视图。 最后一点:我阅读'Javascript Web Applications'的原因是它讨论了JS领域中的模型-视图-控制器(MVC)模式。虽然它提倡使用jQuery库(其中之一)来增强和加速开发,但它不是一个 jQuery API书或另一个新的JavaScript包装器;相反,这本书利用这些库(在适当的情况下)来解决跨浏览器JS不一致性问题,同时营造实际的JS最佳实践和模式,以创建"Web应用程序"。

1
这是错误的JavaScript语法。 - Umesh Patil
1个回答

2
这段话的意思是:这不应该是 JavaScript,而是一个模板文件。模板文件包含静态 HTML 和非常简单的展示逻辑,通常使用伪语言,就像在这种情况下一样。它不应该包含任何真正的 JavaScript - 就像书中所说的那样,这是你不应该做的事情。
接着,书中介绍了一个重构版本,只包含静态 HTML 和伪语言语句。请参见Javascript templating
这本书似乎针对那些已经精通 JavaScript 并正在寻求更好地组织他们的 js 代码的人。

Esailija,感谢您的回复。正如您所正确地断言的那样,该书的示例确实提供了一个更好的版本,再次使用美元/大括号标记。此外,我现在看到该书的第5章继续介绍JS模板。 - 41st

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接