Вопрос о запятых в JavaScript - программирование
Подтвердить что ты не робот

Вопрос о запятых в JavaScript

Возможный дубликат:
Internet Explorer, компилятор Closure и запятые запятые

Я попытался сжать свой код javascript, используя Closure Compiler, и компиляция кода сгенерировала эти две ошибки:

JSC_TRAILING_COMMA: ошибка анализа. IE8 (и ниже) будет анализировать трейлинг запятыми в массиве и объектных литералах некорректно. Если вы настроите таргетинг более новые версии JS, установите соответствующую опцию language_in. на линии 379 символов 0 fontFamily: jqTextareaDiv.css( "семейство шрифтов" ). заменить (/[ "'] {1}/г" "),

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')
                            };

Точно ли это конечная запятая в этом случае и как ее удалить, не нарушая код?

4b9b3361

Ответ 1

Запятая запятая - это запятая, которая следует за конечным элементом в массиве или объектном литерале. Так вот так:

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

В этом случае конечная запятая следует за последним элементом в вашем литерале объекта:

color          : jqTextareaDiv.css("color"),

Если вы удалите его, произойдет ожидаемое поведение. С ним там IE < 9 не понравится.

Ответ 2

Это конечная запятая:

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

Ответ 3

У вас есть запятая запятая в color : jqTextareaDiv.css("color"),. Это было бы первым предупреждением. Второе предупреждение, вероятно, похоже на другое определение в вашем коде.