【问题标题】:Why JavaScript Compressors replace single quotes with double quotes?为什么 JavaScript 压缩器用双引号代替单引号?
【发布时间】:2012-06-13 06:46:51
【问题描述】:

制作一些书签,我尝试使用 JavaScript minifier,如 Google Closure CompilerYUI Compressor。但是,我没有使用这些,因为它们用双引号替换了每个单引号。我不能使用带有双引号的代码,因为我应该用双引号将代码括起来,例如:

<a href="javascript:alert('hello')">hello</a>

所以,我使用MinifyJavascript 进行缩小。我想知道为什么其他缩小器会替换引号。替换引号不会缩小代码。编码风格对于缩小的代码并不重要。那么这是什么原因呢?

【问题讨论】:

  • 那是一行 HTML,而不是 JavaScript。在纯 JavaScript 中,总是可以使用反斜杠转义嵌入的引号。
  • 这是一个Bookmarklet的示例代码。在示例中,我要缩小的代码是alert('hello'),而缩小器将其缩小为alert("hello")
  • 那样的话,你就不能简单地做&lt;a href='javascript:alert("hello")'&gt;吗?
  • @StephenChung 没错!:)
  • (面向未来的读者)既然您谈到了 Google Closure.. 那编译器确实 盲目地将单引号替换为双引号;相反,它选择一个最佳(用于缩小)引号字符,并且当单引号和双引号“编译”为相同长度的字符串时,默认为双引号。自 2012 年 10 月 30 日起,可以使用 cli-switch 将默认引号字符从双引号更改为单引号:--formatting SINGLE_QUOTES。欲了解更多信息,请阅读此answer

标签: javascript quotes minify


【解决方案1】:

此答案纯属猜测:

  • 强制风格一致。
  • gzip 压缩时一致性会减小大小,因为重复的字符序列。

实在想不出别的了。 不过,他们本可以选择单引号而不是双引号。

【讨论】:

  • 可能是为了更好的压缩。
  • 好吧,不管什么原因,它破坏了我的书签。
猜你喜欢
  • 2012-03-06
  • 2013-03-05
  • 1970-01-01
  • 1970-01-01
  • 2018-11-18
  • 1970-01-01
  • 1970-01-01
  • 2017-12-29
  • 1970-01-01
相关资源
最近更新 更多