关于JavaScript中的尾随逗号的问题

时间:2012-08-22 15:21:11

标签: javascript google-closure-compiler

  

可能重复:
  Internet Explorer, Closure Compiler and Trailing Commas

我尝试使用Closure Compiler压缩我的javascript代码,并且编译代码会产生以下两个错误:

  

JSC_TRAILING_COMMA:解析错误。 IE8(及以下)将解析尾随   数组中的逗号和对象文字错误。如果你是目标   较新版本的JS,设置相应的language_in选项。在线   379个字符0 fontFamily:   jqTextareaDiv.css( “字体家庭”)。代替(/ [“'] {1} / GI, ”“),

     

JSC_TRAILING_COMMA:解析错误。 IE8(及以下)将解析尾随   数组中的逗号和对象文字错误。如果你是目标   较新版本的JS,设置相应的language_in选项。在线   932个字符0 fontFamily:jqDiv.css(“font-family”),

这两个错误似乎引用了这段代码:

var jqTextareaDiv = obj.target.parent().parent(),
                            style = {       // the current, relevant style rules for the DIV nesting the textarea
                                fontFamily     : jqTextareaDiv.css("font-family").replace(/["']{1}/gi,""),
                                fontSize       : jqTextareaDiv.css("font-size"),
                                fontStyle      : jqTextareaDiv.css("font-style"),
                                fontWeight     : jqTextareaDiv.css("font-weight"),
                                textDecoration : jqTextareaDiv.css("text-decoration"),
                                textAlign      : jqTextareaDiv.css("text-align"),
                                color          : jqTextareaDiv.css("color"),
                            },
                            jqToolbox = $('#text-edit-toolbox'),
                            jqIndicators = {
                                fontFamily                : $('#font-family-indicator'),
                                fontSize                  : $('#font-size-indicator'),
                                fontStyle                 : $('#font-format-indicators .font-style'),
                                fontWeight                : $('#font-format-indicators .font-weight'),
                                textDecorationUnderline   : $('#font-format-indicators .underline'),
                                textDecorationLineThrough : $('#font-format-indicators .line-through'),
                                textAlignLeft             : $('#text-alignment-indicators .align-left'),
                                textAlignCenter           : $('#text-alignment-indicators .align-center'),
                                textAlignRight            : $('#text-alignment-indicators .align-right'),
                                textAlignJustify          : $('#text-alignment-indicators .align-justify')
                            };

在这种情况下,究竟是哪个尾随逗号,如何在不破坏代码的情况下将其删除?

3 个答案:

答案 0 :(得分:32)

尾随逗号是一个逗号,它跟在数组或对象文字中的最后一个元素之后。像这样:

['a', 'b', 'c',] // with trailing comma
['a', 'b', 'c']  // without trailing comma

在这种情况下,尾随逗号跟在对象文字中的最后一个元素:

color          : jqTextareaDiv.css("color"),

如果删除它,将发生预期的行为。有了它,IE< 9将不喜欢它。

答案 1 :(得分:3)

这是尾随逗号:

color          : jqTextareaDiv.css("color"), <<--

答案 2 :(得分:2)

color : jqTextareaDiv.css("color"),中有一个逗号逗号。这将是第一个警告。第二个警告可能是代码中其他地方的类似定义。