Хорошо, я собираюсь начать писать о том, как я выставил себя дураком, думая, что Java и JavaScript похожи.

Основное отличие, которое я сразу заметил после начала изучения JavaScript, заключается в том, что Java используется для программирования всей серверной разработки, а JavaScript зарезервирован для разработки клиентских скриптов для таких функций, как проверка и интерактивность. И еще я заметил, что JavaScript содержится внутри веб-страницы и интегрируется с ее HTML-содержимым, в то время как Java - это отдельный язык.

И Java, и JavaScript имеют похожий синтаксис в нескольких местах. Комментарии, ключевые слова, операторы, разделители блоков и некоторые общие процедурные конструкции (например, for, while, if и т. Д.) В основном синтаксически идентичны. Это неудивительно, так как они оба отсюда черпают из C.

Java - это простой язык, основанный на классах. Каждый класс может наследовать от другого класса, а классы определяют набор членов и методов. Поддерживаются статические члены / методы, но они, возможно, не объектно-ориентированы.

JavaScript - это простой язык, основанный на прототипах. В языке есть только объекты, объекты могут наследовать непосредственно от одного другого объекта, а объекты - это просто набор слотов (где слот представляет собой пару ключ / значение, а значением является любой объект или примитив).

Я не углубляюсь в анализ разницы между двумя языками, но вы уловили суть, верно?

А теперь позвольте мне познакомить вас с языком, который сделал возможным создание сценариев на стороне клиента, но при этом его очень интересно изучать.

Погружаемся в мир JS:

В JS я заметил интересную вещь: переменная может в один момент быть строкой, а в другой - числом.

Позже я узнал, что языки, которые позволяют это, называются «динамически типизированными», что означает, что есть типы данных, но переменные не привязаны ни к одному из них.

Звучит круто, правда?

No?

Для меня Nevermind звучит круто ».

7 типов данных JavaScript:

НОМЕР

Тип number представляет как целые числа, так и числа с плавающей запятой.

Есть некоторые специальные числа, такие как «Бесконечность», «-Бесконечность» и «NaN».

Еще один интересный факт:

Выполнение математических расчетов в JavaScript «безопасно». Мы можем делать что угодно: делить на ноль, рассматривать нечисловые строки как числа и т. Д.

Сценарий никогда не остановится из-за фатальной ошибки («умри»). В худшем случае мы получим NaN.

STRING

Строка в JavaScript должна быть заключена в кавычки.

В некоторых языках существует специальный тип «символа» для одного символа. Например, в языке C, а в Java это char.

В JavaScript такого типа нет. Тип только один: строка. Строка может состоять как из одного символа, так и из множества.

BOOLEAN

Как вы, возможно, уже знаете, boolean имеет только два значения: true и false.

NULL

Это просто специальное значение, которое представляет «ничего», «пусто» или «значение неизвестно».

НЕ ОПРЕДЕЛЕН

Значение undefined - «значение не присвоено».

Если переменная объявлена, но не присвоена, ее значение не определено.

ОБЪЕКТЫ

Тип объекта особенный.

Все другие типы называются «примитивными», потому что их значения могут содержать только одну вещь (будь то строка, число или что-то еще). Напротив, объекты используются для хранения коллекций данных и более сложных сущностей.

СИМВОЛЫ

Тип символа используется для создания уникальных идентификаторов объектов (я еще не изучал этот).

Объем в JavaScript:

У нас есть два типа области видимости в JavaScript, а именно локальная область видимости и глобальная область видимости.

JavaScript имеет область видимости функции: каждая функция создает новую область видимости.

Область действия определяет доступность (видимость) этих переменных.

Переменные, определенные внутри функции, недоступны (не видны) извне функции.

Поскольку я уже упоминал о области видимости в JS, позвольте мне познакомить вас с концепцией под названием Подъем.

Подъем - это стандартное поведение JavaScript, заключающееся в перемещении всех объявлений в верхнюю часть текущей области видимости (в верхнюю часть текущего скрипта или текущей функции).

В JavaScript переменную можно объявить после того, как она была использована.

Другими словами; переменную можно использовать до того, как она была объявлена ​​(очень просто).

Но, но, но, переменные, объявленные как let и const, не могут быть подняты.

JavaScript поднимает только объявления, но не инициализации (это довольно очевидно).

Переменное затенение:

Я объясню это как можно проще.

Скажем, если вы объявляете переменную в глобальной области и объявляете переменную с тем же именем в локальной области, то временно локальная область содержит переменную.

Лексическая область видимости в JavaScript:

Во-первых, JavaScript имеет лексическую область видимости с областью действия. Другими словами, хотя JavaScript выглядит так, как будто он должен иметь область видимости блока, потому что в нем используются фигурные скобки {}, новая область создается только тогда, когда вы создаете новую функцию .

var externalFunction = function () {

если правда)

{

var x = 5; //console.log(y); // ReferenceError: y не определено

}

var nestedFunction = function () {

если правда)

{

var y = 7;

console.log (х); // x по-прежнему будут известны отпечатки 5

}

если правда)

{

console.log (у); // выводит 7

}

}

return nestedFunction;

}

var myFunction = outerFunction ();

myFunction ();

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

Объем переменных определяется их положением в исходном коде. Чтобы разрешить переменные, JavaScript начинает с самой внутренней области видимости и ищет снаружи, пока не найдет искомую переменную.

Закрытие:

Мне пришлось просмотреть множество статей и веб-сайтов, чтобы понять это.

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

Но, наконец, ваш мужчина понял, что такое закрытие (а может, и нет).

Вам нужно знать, что такое закрытие? Почему это используется? Что я от этого выиграю?

Следите за обновлениями, пока не выйдет следующая глава «Руководства для новичков по пониманию JavaScript».

В конце концов, этот блог не закрывается (это не каламбур).

Закрытие - это выдумка Стивена Спилберга для продажи билетов в кино. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -BoJack Horseman.

(Я знаю, что это совершенно неактуально в данном контексте).