Вопрос о запятых в 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')
};
Точно ли это конечная запятая в этом случае и как ее удалить, не нарушая код?
Ответы
Ответ 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"),
. Это было бы первым предупреждением. Второе предупреждение, вероятно, похоже на другое определение в вашем коде.