Зачем оставлять запятую после пары ключ-значение в литерале объекта?
Я смотрел на gruntjs и смотрел некоторые примеры JSON, используемые для настройки задач Grunt.
Вот пример JSON:
grunt.initConfig({
concat: {
foo: {
// concat task "foo" target options and files go here.
},
bar: {
// concat task "bar" target options and files go here.
},
},
uglify: {
bar: {
// uglify task "bar" target options and files go here.
},
},
});
Как вы можете видеть, после каждого свойства бара появляется "лишняя" запятая. Я попробовал эту запись в Chrome, и она действительна. Хотя это действительно так, я бы не стал использовать это обозначение, но зачем людям его использовать?
1 ответ
Я попробовал эту запись в Chrome, и она действительна.
То, что он работает в Chrome, не означает, что он действителен. Это верно, потому что спецификация говорит так:-)
Я бы не использовал это обозначение, но зачем людям это использовать?
Чтобы сделать копирование и вставку проще. Вы можете просто добавлять новые свойства, не заботясь о дополнительной работе. Это плохая практика в программном коде, потому что старые браузеры (особенно IE) и спецификации ES3 запрещают их, но в конфигурационном файле (то есть в известной среде) это облегчает жизнь.