Зачем оставлять запятую после пары ключ-значение в литерале объекта?

Я смотрел на 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 запрещают их, но в конфигурационном файле (то есть в известной среде) это облегчает жизнь.

Другие вопросы по тегам