Эти материалы предназначены для тех, у кого хотя бы немного опыта работы с другими языками программирования высокого уровня.

JavaScript — это язык программирования, созданный для Интернета в 1995 году Бренданом Эйхом во время работы над Netscape Navigator (первым веб-браузером в Интернете). Он добавляет интерактивные и динамические элементы на веб-сайты. Сегодня JS можно использовать для программирования робота, написания игрового сценария в Unity, даже редакторы кода пишутся на JS.

Первоначально JS назывался LiveScript, а затем был изменен на JavaScript в качестве маркетингового решения, чтобы использовать популярность Java.

Сегодня последние версии обозначаются как ECMAScript (ES5 или ES6). Все основные браузеры поставляются со встроенными механизмами JavaScript.

Комментарии

//This is an inline comment
/* This is a
multi-line comment */

Типы данных

  • неопределенный
  • нулевой
  • логический
  • нить
  • символ
  • номер
  • объект

Разница между null и undefined

нуль

  • ценность ничего.
  • Это не имеет значения.

не определено

  • отсутствие ценности
  • не имеет значения, даже значения ничего.
  • undefined будет возвращено вам, если вы не присвоили значение переменной.

Алгоритмы — это пошаговые инструкции по решению проблемы.

Объявление переменной

Переменные JS хранят данные, и они не ограничиваются только числовыми значениями, вы можете хранить любые данные.

var nameOfTheVariable;

Начальное значение не определено, выполнение математической операции с ним приведет к NaN, что означает «не число». Все имена переменных и функций чувствительны к регистру, это означает, что регистр имеет значение.

Назначение переменной

var nameOfTheVariable = value;
var num = 5;
var name = "ashwin";

Все, что находится справа от знака =, сначала оценивается, а затем присваивается левой переменной.

Арифметические операции

  • + Дополнение
  • - Вычитание
  • * Умножение
  • / Разделение
  • ++ Увеличение
  • - - Декремент
  • % остаток

Постфиксный инкремент

x++ вернет исходное значение перед увеличением. Это то же самое, что х=х+1.

Приращение префикса

++x увеличит исходное значение x, а затем вернет его.

Экранирование буквенных кавычек в строках

//All are same in JavaScript
var sample = "Alan said, \"Ash is learning JS\".";
var sample = 'Alan said, \'Ash is learning JS\'.';
var sample = 'Alan said, "Ash is learning JS"';

«Пессимист видит трудности в каждой возможности. Оптимист видит возможность в каждой трудности»

Escape-последовательности

  • Одинарная кавычка — \’
  • двойная кавычка — \”
  • обратная косая черта — \\
  • новая строка — \n
  • Вкладка — \t

Конкатенация

var joinStr = "Ashwin is" + " a good boy.";
joinStr += " He is also smart";
Output: - "Ashwin is a good boy. He is also smart"

Неизменяемость строк

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

Используйте скобочную нотацию, чтобы найти N-й символ в строке.

name = "ASHWIN";
var thirdLetter = name[2];

Массивы

var arr = ["goa", "panaji", 754777, true];

Массивы JS могут хранить несколько значений с разными типами данных в одной организованной структуре данных. Имя, которое используется для обозначения местоположения элемента, — это его ИНДЕКС.

//Array Nesting
var nestArr = [["Ash", 22], ["John", 33], ["Kim", 44]];
//nestArr[0][0] is equal to "Ash".

В отличие от строк, массивы изменяемы и могут свободно изменяться.

Функции

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

function functionName(){
  console.log("Hello world");
}

Вызовите или вызовите эту функцию, используя ее имя, за которым следуют круглые скобки.

functionName();

Функция всегда будет возвращать некоторое значение вызывающей стороне. Если возвращаемое значение не указано, то функция просто вернет undefined

В JS вы также можете хранить функции в переменных, это называется выражением функции.

var cat = function(max) {
           //code
         }

Обратите внимание, что у ключевого слова function больше нет имени. Это называется анонимной функцией. Для доступа к этой функции используйте имя переменной (в данном случае cat).

cat();

В функциональном выражении подъем не будет работать. Здесь вызов функции перед объявлением даст ошибку.

Параметры и аргументы

Функция иногда определяется с помощью параметров

function test(param1, param2)
{
  console.log(param1, param2);
}

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

test("Hello","World");

Объем переменных

  • Переменные, определенные за пределами функционального блока, имеют глобальную область действия, к ним можно получить доступ из любой точки вашей программы.
  • Переменные, объявленные внутри функции, а также параметры функции имеют локальную область видимости.
  • Можно иметь как локальные, так и глобальные переменные с одинаковыми именами. Когда вы делаете это, локальные переменные имеют приоритет над глобальной переменной.
  • Работа с областью действия заключается в том, что когда вызывается переменная, она сначала будет искаться на своем уровне области видимости, будь то функция, на которой она вызывается, и если она там не найдена, она ищет один уровень вне своей области, таким образом он перемещается на один уровень и достигает глобальной области видимости, и если переменной нет, она покажет ошибку.

оператор return возвращает результаты и завершает дальнейшее выполнение в функции. Он используется внутри функции для отправки значения обратно из функции. Функция может включать оператор return, но это не обязательно. В случае, если функция не имеет оператора return при ее вызове. Функция обрабатывает внутренний код, но возвращаемое значение не определено.

Очередь. В информатике очередь – это абстрактная структура данных, в которой элементы хранятся в определенном порядке. Новые элементы могут быть добавлены в конец очереди, а старые элементы удалены из начала очереди.

В большинстве языков программирования вы должны объявить функцию перед ее вызовом, потому что идея заключается в том, что код читается сверху вниз. Что ж, в JS перед выполнением любого JS все объявления функций поднимаются на вершину их текущей области. Но код, который вы пишете, не изменится.

Разработчики JS обычно объявляют функции в верхней части своего скрипта, а переменные — в верхней части своих функций. Чтобы код выглядел и вел себя последовательно.

Если заявление

if(condition)
{
  //If condition is true, execute.
}
  • = Оператор присваивания
  • == Оператор равенства
  • != Оператор неравенства
  • === Оператор строгого равенства
  • !== Оператор строгого неравенства
  • Оператор равенства преобразует оба сравниваемых значения в общий тип (называемый приведением типа) в случаях, когда значения не относятся к одному и тому же типу. Оператор строгого равенства не выполняет преобразование типа.
//returns true because type conversion is done, string to number.
3 == '3' 
//returns false, because type conversion is not performed.
3 === '3'
  • Логический оператор И — &&
  • Логический оператор ИЛИ — ||

Оператор «если/иначе»

if(condition)
{
  //true part
}
else
{
  //false part
}

Иначе если Заявление

if(condition)
{
  //true part1
}
else if(condition)
{
  //true part2
}
else
{
  //false part
}

Заявление о переключении

switch(option)
{
 case value1: statement1;
              break;
 case value2: statement2;
              break;
 case value3: statement3;
              break;
 default: defaultStatement;
}
  • оператор break используется для выхода из нашего оператора switch.
  • Значения case проверяются на строгое равенство (===)

Объекты

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

Объекты позволяют нам упаковать части связанных данных и функций в один контейнер.

Объекты полезны для структурного хранения данных и могут представлять объекты реального мира.

var cat = {
      "name": "Whisker",
      "legs": 4,
      "tails": 1,
      "enemies of cat": ["Water", "Dogs"],
      "run": function() { //code },
    };

Объекты имеют пары ключ-значение для каждого фрагмента данных, здесь «имя» — это ключ, а «ус» — это значение. Без двойных кавычек ключ тоже будет работать.

Доступ к свойствам объекта можно получить двумя способами: запись через точку (.) и запись в квадратных скобках ([]).

var nameOfCat = cat.name;

Использование скобочных обозначений

var enemies = cat["enemies of cat"];

Имена свойств с пробелами в них должны быть в кавычках (одинарные или двойные).

Обновление свойств объекта

// . Notation
cat.name = "Happy Whisker";
// [] Notaion
cat["name"] = "Big Cat";

Добавление нового свойства

cat.sound = "meow meow";
cat["sound"] = "meow meow";

Удалить свойства

delete cat.sound;
delete cat["sound"];

Объекты можно рассматривать как хранилище ключей/значений, как словарь. Если у вас есть табличные данные, вы можете использовать объект для «поиска» значений, а не оператор switch или цепочку if/else.

Управление сложными объектами

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

var music = [
  { "artist": "Ashwin",
    "formats": ["CD", "DVD", "Blueray"]
  },
  { "artist": "John",
    "formats": ["CD", "MP4", "Blueray"]
  },
  { "artist": "Ram",
    "formats": ["MP3", "DVD", "Blueray"]
  }
];

JSON или JavaScript Object Notation — это связанный формат обмена данными, используемый для хранения данных.

Доступ к подсвойству

music[1].formats[2];
music[1]["formats"][2];

«Живи так, как будто ты умрешь завтра. Учись так, как будто ты будешь жить вечно».

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

Итерация

Циклы позволят вам перебирать значения и повторно запускать блок кода. 3 основные части петли

  • Когда начинать.
  • Когда остановиться.
  • Как перейти к следующему пункту.

Если вы забудете любую из этих трех частей, это создаст бесконечный цикл, который приведет к сбою вашего браузера.

Пока цикл

while(condition)
{ 
   //execute if condition is true.
   //Update parameters in condition or increment/decrement.
}
//Example
var i = 0;
while(i<5)
{
  console.log(i);
  i++;
}

Для цикла

for(initialization; condition; increment/decrement)
{
  //executes if condition is true.
}
//Example
var arr = [];
for(var i=0; i<5; i++)
{
  arr.push(i);
}

Цикл Do-while

var arr = [];
var i = 0;
do {
 arr.push(i);
 i++;
} while(i<5);

Условный оператор/Тернарный оператор

condition ? statement-if-true : statement-if-false;
//Example
7<8 ? "7 is less" : "7 is big";

Множественный тернарный оператор

(a===b) ? "a and b equal" : (a>b) ? "a is big" : "b is big";

Спасибо, что прочитали. Если вам понравилось это, похлопайте в ладоши, так как это действительно мотивирует меня писать больше и лучше о технологиях и других вещах. Следуйте за мной здесь. Хорошего дня…😃