【问题标题】:Does the hashbang (#!) have any functionality client side?hashbang (#!) 在客户端有任何功能吗?
【发布时间】:2022-12-15 03:48:08
【问题描述】:

我最近了解了用于在 JavaScript 中编写 cmets 的 hashbang 语法,并且需要知道它是否或有可能与将 // 放在文件顶部有所不同。是否有任何与 hashbang 相关的约定?

我指的是仅在浏览器环境中使用,而不是在 shell 或 NodeJS 等中。

我问是因为我正在写有关 JavaScript 语法的文章,需要确保它 100% 正确。

【问题讨论】:

标签: javascript shebang hashbang


【解决方案1】:

Hashbang 对 JavaScript 没有任何意义,就它而言它只是一个注释。它存在的唯一原因是,当您尝试将以 #! 开头的文件作为命令运行时,Unix 会特别对待它们,这可用于在服务器上自动运行 node.js

这在显式加载脚本的浏览器中毫无意义。所以hashbang在客户端没有特殊功能。

【讨论】:

    【解决方案2】:

    不,#! 没有任何 JavaScript 功能,无论是在服务器端还是在客户端。这只是一个什么都不做的评论。它在某些操作系统上的可执行文件中具有功能,但这与 JavaScript 无关——它只是允许将 JavaScrit 脚本编写为文本文件,以利用该操作系统功能。

    在相关说明中,JavaScript 也使用 <!-- … and --> as comment syntax,它在非 HTML 上下文中(如在服务器端 javascript 中)同样无用,但无论如何它是允许兼容性的。

    【讨论】: