Информация об изменениях

Сообщение Re: Объявление функций в яваскрипт от 12.07.2019 9:40

Изменено 12.07.2019 9:42 vsb

Re: Объявление функций в яваскрипт
Здравствуйте, dmitritch, Вы писали:

Если речь о
сonst addSVGElementFromJson = function (data) {


против

function addSVGElementFromJson(data) {


то отличия следующие:

1. Первый вариант не позволяет в последующем изменить значение addSVGElementFromJson. Во втором варианте можно в последующем изменить значение addSVGElementFromJson. Теоретически первый вариант может даже улучшить производительность, но как на самом деле — не знаю.

2. Видимость объявления. Первый вариант видим только после объявления. У второго варианта видимость распространяется на весь блок, в том числе и на участок до объявления. В частности во втором варианте это позволяет писать код в стиле top-to-bottom, когда вначале объявляется высокоуровневая функция, которая использует низкоуровневые, а после неё объявляются уже низкоуровневые и тд. Во первом варианте так не получится, придётся всегда объявлять функции в правильном порядке, начиная от низкоуровневых. Также не получится объявить две взаимно рекурсивные функции таким образом.
Re: Объявление функций в яваскрипт
Здравствуйте, dmitritch, Вы писали:

Если речь о
сonst addSVGElementFromJson = function (data) {


против

function addSVGElementFromJson(data) {


то отличия следующие:

1. Первый вариант не позволяет в последующем изменить значение addSVGElementFromJson. Во втором варианте можно в последующем изменить значение addSVGElementFromJson. Теоретически первый вариант может даже улучшить производительность, но как на самом деле — не знаю. На практике первый вариант более "устойчив" к опечаткам и ошибкам.

2. Видимость объявления. Первый вариант видим только после объявления. У второго варианта видимость распространяется на весь блок, в том числе и на участок до объявления. В частности во втором варианте это позволяет писать код в стиле top-to-bottom, когда вначале объявляется высокоуровневая функция, которая использует низкоуровневые, а после неё объявляются уже низкоуровневые и тд. Во первом варианте так не получится, придётся всегда объявлять функции в правильном порядке, начиная от низкоуровневых. Также не получится объявить две взаимно рекурсивные функции таким образом.

В целом современный JavaScript-код обычно пишется по первому варианту.