为什么JavaScript压缩器将单引号替换为双引号?
制作一些Bookmarklet时,我尝试使用JavaScript迷你程序,比如or。然而,我没有使用这些,因为它们用双引号替换了每个单引号。我不能使用双引号的代码,因为我应该用双引号将代码括起来,如:为什么JavaScript压缩器将单引号替换为双引号?,javascript,quotes,minify,Javascript,Quotes,Minify,制作一些Bookmarklet时,我尝试使用JavaScript迷你程序,比如or。然而,我没有使用这些,因为它们用双引号替换了每个单引号。我不能使用双引号的代码,因为我应该用双引号将代码括起来,如: <a href="javascript:alert('hello')">hello</a> 所以,我用缩小。我想知道为什么其他迷你们取代报价。替换引号不会缩小代码。编码样式对于精简的代码并不重要。那么原因是什么呢?在这个答案中纯粹是猜测: 加强风格的一致性 由于重复
<a href="javascript:alert('hello')">hello</a>
所以,我用缩小。我想知道为什么其他迷你们取代报价。替换引号不会缩小代码。编码样式对于精简的代码并不重要。那么原因是什么呢?在这个答案中纯粹是猜测:
- 加强风格的一致性
- 由于重复的字符序列,一致性减少了gzip的大小
不过,他们可以选择单引号而不是双引号。这是一行HTML,不是JavaScript。在纯JavaScript中,总是可以用反斜杠转义嵌入的引号。这是Bookmarklet的示例代码。在这个例子中,我想缩小的代码是
警报('hello')
,缩小器可以缩小到警报(“hello”)
。在这种情况下,你不能简单地执行
?@StephenChung是的!)(面向未来读者)既然你谈到谷歌关闭。。编译器不会盲目地用双引号替换单引号;相反,当单引号和双引号“编译”为相同长度的字符串时,它会选择一个最佳的(用于缩小)引号字符,并默认为双引号。自2012年10月30日起,有一个选项可以使用cli开关将默认引号字符从双引号更改为单引号:——格式化单引号
。要了解更多信息,请阅读本文。可能是为了更好地压缩。好吧,不管是什么原因,它破坏了我的bookmarklet。