Сообщение Re: Объявление функций в яваскрипт от 12.07.2019 9:40
Изменено 12.07.2019 9:42 vsb
Re: Объявление функций в яваскрипт
Здравствуйте, dmitritch, Вы писали:
Если речь о
против
то отличия следующие:
1. Первый вариант не позволяет в последующем изменить значение addSVGElementFromJson. Во втором варианте можно в последующем изменить значение addSVGElementFromJson. Теоретически первый вариант может даже улучшить производительность, но как на самом деле — не знаю.
2. Видимость объявления. Первый вариант видим только после объявления. У второго варианта видимость распространяется на весь блок, в том числе и на участок до объявления. В частности во втором варианте это позволяет писать код в стиле top-to-bottom, когда вначале объявляется высокоуровневая функция, которая использует низкоуровневые, а после неё объявляются уже низкоуровневые и тд. Во первом варианте так не получится, придётся всегда объявлять функции в правильном порядке, начиная от низкоуровневых. Также не получится объявить две взаимно рекурсивные функции таким образом.
Если речь о
сonst addSVGElementFromJson = function (data) {
против
function addSVGElementFromJson(data) {
то отличия следующие:
1. Первый вариант не позволяет в последующем изменить значение addSVGElementFromJson. Во втором варианте можно в последующем изменить значение addSVGElementFromJson. Теоретически первый вариант может даже улучшить производительность, но как на самом деле — не знаю.
2. Видимость объявления. Первый вариант видим только после объявления. У второго варианта видимость распространяется на весь блок, в том числе и на участок до объявления. В частности во втором варианте это позволяет писать код в стиле top-to-bottom, когда вначале объявляется высокоуровневая функция, которая использует низкоуровневые, а после неё объявляются уже низкоуровневые и тд. Во первом варианте так не получится, придётся всегда объявлять функции в правильном порядке, начиная от низкоуровневых. Также не получится объявить две взаимно рекурсивные функции таким образом.
Re: Объявление функций в яваскрипт
Здравствуйте, dmitritch, Вы писали:
Если речь о
против
то отличия следующие:
1. Первый вариант не позволяет в последующем изменить значение addSVGElementFromJson. Во втором варианте можно в последующем изменить значение addSVGElementFromJson. Теоретически первый вариант может даже улучшить производительность, но как на самом деле — не знаю. На практике первый вариант более "устойчив" к опечаткам и ошибкам.
2. Видимость объявления. Первый вариант видим только после объявления. У второго варианта видимость распространяется на весь блок, в том числе и на участок до объявления. В частности во втором варианте это позволяет писать код в стиле top-to-bottom, когда вначале объявляется высокоуровневая функция, которая использует низкоуровневые, а после неё объявляются уже низкоуровневые и тд. Во первом варианте так не получится, придётся всегда объявлять функции в правильном порядке, начиная от низкоуровневых. Также не получится объявить две взаимно рекурсивные функции таким образом.
В целом современный JavaScript-код обычно пишется по первому варианту.
Если речь о
сonst addSVGElementFromJson = function (data) {
против
function addSVGElementFromJson(data) {
то отличия следующие:
1. Первый вариант не позволяет в последующем изменить значение addSVGElementFromJson. Во втором варианте можно в последующем изменить значение addSVGElementFromJson. Теоретически первый вариант может даже улучшить производительность, но как на самом деле — не знаю. На практике первый вариант более "устойчив" к опечаткам и ошибкам.
2. Видимость объявления. Первый вариант видим только после объявления. У второго варианта видимость распространяется на весь блок, в том числе и на участок до объявления. В частности во втором варианте это позволяет писать код в стиле top-to-bottom, когда вначале объявляется высокоуровневая функция, которая использует низкоуровневые, а после неё объявляются уже низкоуровневые и тд. Во первом варианте так не получится, придётся всегда объявлять функции в правильном порядке, начиная от низкоуровневых. Также не получится объявить две взаимно рекурсивные функции таким образом.
В целом современный JavaScript-код обычно пишется по первому варианту.