在分号后插入换行符总是安全的吗?

时间:2011-01-04 18:16:58

标签: javascript syntax newline clearcase

我在将一个缩小的JavaScript文件检入Clearcase时遇到问题。有问题的文件是一行,远远超过8000 character limit that Clearcase imposes

我知道JavaScript解释器在换行符时会做一些tricky things inserting semicolons,但我想知道在分号后添加换行符是否总是安全的。这样做是否有可能改变JavaScript代码的含义?

5 个答案:

答案 0 :(得分:5)

回答您的直接问题:是的,您可以在结束语句的分号后添加换行符。文件中可能还有分号的其他用法(例如在字符串或正则表达式中),你不应该触摸它们。

我还有另一个问题:你为什么要检查一个缩小的JavaScript文件?我认为最好检查原始的详细JavaScript源代码。另外,版本控制系统通常对一行文件无效。如果您已经在检查原始JavaScript,则现在必须保持两个文件之间的一致性(即,当您更改一个文件时,必须刷新另一个文件)。我建议您检查一个脚本,该脚本会在部署时缩小原始,而不是将缩小版本保留在Clearcase中。

答案 1 :(得分:3)

分号可能封装在一个字符串中。在字符串中添加换行符会改变javascript的含义。

答案 2 :(得分:3)

如果分号在字符串或正则表达式中(例如var rex = /;/g; - 在第二个分号后插入换行符是安全的),那么是的,这显然是个问题。否则,在声明后换行总是安全的。

答案 3 :(得分:3)

管理员或开发人员需要在存储工件的每个VOB上运行此命令 (在期望的VOB的背景下) (不是100%肯定-supertype,“binary_file”可能更好) (不是100%肯定-mergetype,“复制”可能会更好!) (您可以随后通过-replace选项更改此内容)

  

cleartool mkeltype -nc -supertype text_file -manager z_whole_copy -mergetype auto text_file_minified

这可用于纠正尝试签入失败的文件。 它们可能是用“text_file”类型创建的 text_file类型的各行不能超过8000个字符。

  

cleartool chtype -nc -force text_file_minified jquery-1.8.2.min.js

将此文件放在您签入的桌面/开发计算机上。 删除任何前导空格。

# AAA.magic
# This needs to copied to all developer desktops
# copy it next to default.magic (or cc.magic)
#   under ...\ClearCase\config\magic

# Leave these from the default.magic just in case
# files are processed in alphabetic order, hence the AAA prefix

# Check stat type
directory : -stat d ;
block_device : -stat b ;
char_device : -stat c ;
socket : -stat s ;
fifo : -stat f ;

# minified javascript and CSS
# some of these violate the 8000 character per line limit 
#  of clearcase text tools/type managers
# *.min.js
text_file_minified : -name "*.[mM][iI][nN].[jJ][sS]" ;
# *.min.css
text_file_minified : -name "*.[mM][iI][nN].[cS][sS][sS]" ;

答案 4 :(得分:-1)

Javascript中的分号始终确定代码行的结尾。

鉴于此,除非该分号是字符串的一部分,否则在分号后添加换行符应始终是安全的。