Мои отношения с javascript были в духе любви и ненависти. Один раз мы неразлучны, но иногда мы не хотим находиться в одной комнате.

Однако, поскольку она - необходимое зло, и она мне нужна; Мне пришлось проглотить свою гордость и уделить ей свое внимание.

Я начал свой квест с понимания странных частей js (их есть пара); Так что пристегнитесь к этой поездке.

Я наткнулся на несколько руководств, в которых я сомневался в своих навыках работы с Google и так называемого SEO. Короче говоря, я остановился на уроках Udemy.

В нем есть подробный видеоурок по пониманию js наизнанку. "ЗДЕСЬ"

По мере прохождения каждого из них я лучше разбирался в js, особенно в backbone. Как все работает и почему они работают именно так. У меня были моменты Ага, когда я соединял точки.

Вот мои основные выводы;

1. Изучите язык, прежде чем использовать библиотеки и фреймворки.

Лично я не совсем понимал js, когда изучал React и Vue. Я обнаруживал, что большую часть времени застрял, и мне часто требовалась помощь, чем нет. Я не говорю, что просить о помощи - плохо, но я уверен, что вы поняли мою мысль.

Я свяжу это с математическими формулами, извиняюсь перед теми, кому это не нравится.

2. Неопределенное - это не "не определено"

Буквально говоря, если что-то не определено, значит, это не определено. Но в javascript это не так.

Не определено - это значение по умолчанию, установленное для переменной, если вы не устанавливаете его самостоятельно.

С другой стороны, «Не определено» означает, что эта переменная не была объявлена ​​и браузер не хранит ее в памяти.

3. Стек выполнения

Большинство разработчиков знают, что вы больше отлаживаете, чем кодируете, и понимание контекста выполнения js пригодится.

Если бы я запускал эти строки кода, контекст выполнения запускался бы глобально и создавал бы глобальный контекст выполнения. Я бы принял myVar как 1-глобальное значение. Затем вызов функции b.

Это создаст другой контекст выполнения для выполнения b поверх глобального. Значение myVar будет равно 2, это вызов функции объекта, который создает другой контекст выполнения для этой функции. После завершения выполнения контекст выполнения выталкивается из стека, чтобы оставить только глобальный.

Поскольку мы не установили значение myVar, оно будет искать во внешнем окружении функции, которым в данном случае является b, поэтому значение будет равно 2.

4. Операторы как функции.

Я действительно никогда не думал об этом в этом смысле. При использовании операторов мы использовали инфиксные обозначения (2 + 4). Другие обозначения - префикс(+2 4) и постфикс (2 4+).

В Js каждый оператор - это функция, которую вы вызываете, когда используете ее. Он позволяет вызывать эту операторную функцию с инфиксной нотацией.

5. Функции как объекты

Функция - это «объект, код которого является одним из свойств».

Вы можете легко добавить свойство к функции, как указано выше language.hands = ‘sign’

Вывод:

Я изучил и другие концепции, которыми буду делиться по мере продвижения. Это стало интересным путешествием. Хотя js раздражает, вы оцените его мощь, как только разберетесь в его основе.

Вдохновленный Документом, не создавайте: GaryVee