Size: a a a

2021 October 29

В

Валик in JS
👀
источник
2021 October 30

BD

Buff Doge in JS
ребят всех приветствую, я относительно недавно начал изучать JS и у меня созрел такой вопрос,
я все что говорят лекторы в теории понимаю, но меня напрягает вопрос как составлять логику программы, ее алгоритм и как она начинается?
нужно ли мне для начала всю теорию курса изучить и потом я это пойму или же как то по другому?
источник

К

Кирилл in JS
Практика, больше практики
источник

AM

Azat Magdeev in JS
я обычно блок-схему рисую сначала, если логика сложная.
источник

Я

Ярослав in JS
JS это только синтаксис. Синтаксис нужен для записи алгоритма, но вовсе не рассматривает составление алгоритмов. Для развития способности программировать (создавать решения прикладных задач) - надо изучать именно программирование, а не язык.
источник

A

Ash in JS
Алгоритмизацию может
источник

Я

Ярослав in JS
Нет, основы программирования включают не только алгоритмизацию. Типы и структуры данных, например, тоже важно знать... как и базовую (вводную) теорчасть.
Вообще желательно изучать информатику в целом, а не ограничиваться малой частью от практического направления этой науки (чем программирование и является, так-то).
источник
2021 October 31

В

Валик in JS
источник

YK

Yury Khmarin in JS
Функции это объекты первого класса в JS. а что тогда объекты 2,3 класса? И так далее? Где почитать
источник

ИШ

Илья Шихутин... in JS
Ты их вроде сам создаешь
источник

ИШ

Илья Шихутин... in JS
Или из библиотеки какой можно взять
источник

ИШ

Илья Шихутин... in JS
Просто наследовать и создавать новые от какогонить обьекта
источник

Я

Ярослав in JS
The concept of first- and second-class objects was introduced by Christopher Strachey in the 1960s.[2][3] He did not actually define the term strictly, but contrasted real numbers and procedures in ALGOL:
First and second class objects. In ALGOL, a real number may appear in an expression or be assigned to a variable, and either of them may appear as an actual parameter in a procedure call. A procedure, on the other hand, may only appear in another procedure call either as the operator (the most common case) or as one of the actual parameters. There are no other expressions involving procedures or whose results are procedures. Thus in a sense procedures in ALGOL are second class citizens—they always have to appear in person and can never be represented by a variable or expression (except in the case of a formal parameter)...First and second class objects. In ALGOL, a real number may appear in an expression or be assigned to a variable, and either of them may appear as an actual parameter in a procedure call. A procedure, on the other hand, may only appear in another procedure call either as the operator (the most common case) or as one of the actual parameters. There are no other expressions involving procedures or whose results are procedures. Thus in a sense procedures in ALGOL are second class citizens—they always have to appear in person and can never be represented by a variable or expression (except in the case of a formal parameter)... [4]

Крч, объекты первого класса могут присваиваться и передаваться аргументами, а также возвращаться результатом из функций. Объекты второго класса (говоря о функциях) - соответственно, не могут как минимум одно из перечисленного. Думаю, не нужно называть языки где функции могут быть объявлены только статически и не могут присваиваться/передаваться как объектные экземпляры... А объектов "третьего и далее" классов, вроде не существует))
источник
2021 November 01

V

Veli in JS
По сути, исходя из написанного, объекты второго класса - это объекты, которые могут применяться только как инструкции (либо только частично как выражения)

Те же function declaration у нас в js, но из-за наличия function expression и их одинакового синтаксиса это не заметно даже

Больше в js ничего подобного нет
источник

Я

Ярослав in JS
Угумс, фактически получается что в самом JS все объекты - первого класса (то есть, не учитывая объекты от внешних апи)... и функции в том числе. Если я ничего не упускаю.
источник

V

Veli in JS
В js есть function declaration и function expression, просто они неявно друг друга "подменяют" в зависимости от применения, насколько мне известно.

Пример - если объявить fd (написать его как инструкцию, никуда не передавать и не присваивать), то функция себя ведет как инструкция, объявляется и всплывает (ее можно использовать ДО объявления)

если объявить fe (передать его куда-то как выражение/присвоить в переменную), то функция ведет себя как выражение и, как минимум, уже не всплывает. При чем интересно то, что не всплывает она не из-за переменной (мол используем невсплывающую переменную), а даже в том случае, если ей задать название после function. Специально только что проверил
источник

V

Veli in JS
хотя она не то что не всплывает, она в принципе не объявляется (просто не использовал такой синтаксис с двумя названиями никогда). Если не ошибаюсь, второе название будет доступно только внутри функции
источник

V

Veli in JS
ну объекты с внешнего апи мы никак не сможем получить) только в виде текста (json, xml и т.д), а потом превратить их в JS объекты, которые будут самыми обычными объектами
источник

Я

Ярослав in JS
> они неявно друг друга "подменяют"
Такого в JS точно нет: как функция описана, так она и интерпретируется (если статическое объявление, то на этапе парсинга, если ФВ то позже - либо в рантайме, либо в постпарсинге, в зависимости от реализации движка).

> интересно то, что не всплывает она не из-за переменной
Тут всплытия нет как раз из-за того что это ФВ, а const объявление ограничено лексической областью "своего" блока.
источник

V

Veli in JS
ну я потому в кавычки и выделил, что имею ввиду просто то, что fd и fe ведут себя по-разному. По поводу сonst - это понятно, но я специально обращался не по имени переменной, а по имени самой функции, которое я после function написал. Она недоступна, ведет себя иначе. У нас переменные вроде как скоуп не умеют создавать, почему fe под именем, которое я указал после function недоступна нигде?
источник