LINUX.ORG.RU

Так где все таки нужно определять локальные переменные в JS

 , , ,


1

1

В начале функции (Pascal-Style) или таки нет?

я нифига не понял

Зы. Мой сеньор тоже в непонятках. Зы. зы. Реквестирую тег «50 оттенков JS»



Последнее исправление: EnterpriseMobility (всего исправлений: 1)

перестань писать код, не смеши людей. и хозяину передай

anonymous
()

Видимо, проблема возникает из за синтаксиса самого языка. В этом конкретном языке - видимо самое оптимальное - ближе к месту применения - как в PHP или Basic

robot12 ★★★★★
()

Я вначале только импорты описываю. Все остальное делится на блоки кода по смыслу. В общем-то то, что рекомендует дядька в видео.

Black_Roland ★★★★
()

Представь, что функция разрастается и ты выносишь куски кода в отдельные функции. Как тебе проще будет это делать?
Или ты читаешь код функции, а там портянка из объявлений (с инициализацией). Когда доходишь до кода, где используется переменная, ты уже забыл что там инициализировалось.

winlook38 ★★
()

Хватит писать код.

renya ★★★★★
()

Мдааа... А он почему сеньор? Название нравится, да?

Добавляю к твоему «Не может реализовать дерево на C#» еще и «не знает основ JS, но пишет на нем».

Quickern ★★
()

Если будешь писать на coffee, то вопроса просто не остается.

special-k ★★★★
()

В строгом случае — в начале.
В остальных — согласно регламенту.
Если сеньор не может написать регламент по написанию кода — нахер он вообще нужен?

Goury ★★★★★
()

Имхо, главное писать перед их употреблением, чтобы на момент использования они были определены, больше никаких ограничений нет. Какая, собственно разница? Такие вопросы обычно возникают, когда код писать не умеешь, типа, чтобы было о чем языком трепать.

Меня выбешивает иногда, когда некоторые ушлепки всегда инициализируют все переменные перед их использованием. Это 100% признак того, что чел плавает в JS.

Есть одна тонкость с инициализацией не локальных переменных внутри ф-ций, а свойств объектов. Если св-во не объявлено, при использовании with, присваивание неинициализированной переменной уйдет в глобал. Но это уже другая история.

javaQest
()
Ответ на: комментарий от umren

пора бы уже перейти с function на gosub и не морочить людям мозги.

(Сорре, не удержалсо.)

heilkitty ★★
()

Есть, кстати, некоторые нюансы, связанные с 2-х проходной компиляцией

console.log(

(function(){
  foo=1
  var foo
  return foo
}())
)
//1

это именно локальная foo выскочила. strict тут не помогает.

это может привести к wtf'кам, которые потом зипешся ловить, особенно в сочетании с function declaration. Поэтому, разного рода хипстерские штучки пейсать не надо.

javaQest
()

Так где все таки нужно определять локальные переменные в JS

Определять нужно прямо перед их использованием

kiotoze ★★★★
()
Ответ на: комментарий от javaQest

Это 100% признак того, что чел занимался отладкой чего-то хотя бы на порядок сложнее хеловорда и его зае**ла баранья типизация.

ftfy

anonymous
()
Ответ на: комментарий от anonymous

ну и как ему поможет в отладке предварительное объявление?

javaQest
()
Ответ на: комментарий от anonymous

и его зае**ла баранья типизация.

и при чем тут, собственно, типизация?

javaQest
()
Ответ на: комментарий от menangen

Толку то от этого, если там политика «не добавляем никаких фич которые не поддерживает IE6».

zinfandel ★★
()
Ответ на: комментарий от javaQest

Меня выбешивает иногда, когда некоторые ушлепки всегда инициализируют все переменные перед их использованием. Это 100% признак того, что чел плавает в JS.

И над какими же ты проектами работал вместе с ними?

ya-betmen ★★★★★
()

10-минутное видео? я тоже нифига не понял, ибо не стал смотреть.

Deleted
()

описывать перед использованием. не стоит превращать c-style код в мерзотный делфийский.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.