Я использую W3Schools, чтобы узнать больше о JS. Сегодня я узнал:

  • Строгий режим. Строгий режим — это буквальное выражение, используемое в JavaScript для обеспечения того, чтобы код выполнялся только в «строгом режиме». Это означает, что такие значения, как undeclared, не будут прочитаны при попытке выполнить ваш код.
  • Чтобы использовать строгий режим, вы просто добавляете «use strict»; в начало вашего скрипта (глобального) или функции (локального).
"use strict"; 

i = "rainbow"; //this will cause an error because i is not declared 
  • Ключевое слово this в JavaScript — относится к объекту. Определение этого зависит от того, как используется ключевое слово. этоможно использовать по-разному:
  • в методе — этоотносится к объекту при использовании в методе объекта
roleRoster: function() {
  return this.name + " " + this.occupation + " " + this.salary; 
}
  • при использовании отдельно — это глобальный объект. Это также применимо в строгом режиме.
"use strict"; 

let banana = this; 
  • при использовании в функции — глобальный объект привязывается к this по умолчанию. Здесь нельзя использовать строгий режим, и он вернет неопределенное значение, поскольку строгий режим не допускает привязку по умолчанию.
function bananaMuffin() {
  return this; 
}

//returns [object Window] 
  • при использовании в обработчиках событий — этоотносится к элементу HTML события
  • при использовании в привязке метода объекта — этоотносится к объекту
const dog = {
  name: "Kai", 
  age: 21,
  breed: "Miniature Pinscher",
  favoriteFood: "pup cups"
  kaisFunction: function() {
    return this.name + "says woof";
  }
}; 

//"this" refers to dog. 
  • при использовании в явной привязке функций — в JS есть некоторые предварительно созданные функции, такие как bind(), call() и apply(), которые можно использовать для вызова метода объекта с другим объектом.
  • call() — вы можете написать метод, который можно использовать для разных объектов. Этот метод принимает аргументы отдельно.

  • apply() — вы можете написать метод, который можно использовать на разных объектах. метод apply принимает аргументы в виде массива.

  • bind() — с помощью этого метода объект может заимствовать метод у другого объекта.

  • Классы JavaScript — вы используете слово class и всегда добавляете метод с именем конструктор():
class ClassName{
  constructor() {...}
  method_1(){...}
  method_2(){...}
  method_3(){...}
}

ex. 

class Dog{
  constructor(name, age){
    this.name = name; //initializing the variables 
    this.age = age; 
  }
  
  age() {
    let date = new Date();
    return date.getFullYear() - this.year; 
  }
}
  • метод конструктора — используется для инициализации свойств объекта и автоматически выполняется при создании нового объекта. У вас всегда должен быть метод конструктора.
  • после метода конструктора вы можете добавить методы в свой класс
  • JSON (обозначение объектов JavaScript) — формат для хранения и перемещения данных. Формат JSON является только текстовым, но код для чтения и генерации данных JSON может быть написан на любом языке.
  • JSON должен быть — в парах имя/значение; разделенные запятыми, фигурные скобки должны содержать объекты, а квадратные скобки должны содержать массивы
  • Преобразование текста JSON в объект JS —используйте JSON.parse(), чтобы преобразовать строку в объект JS.
  • Ускорение кода JS — область, которая меня сейчас особенно интересует: — Уменьшите количество действий в коде. Каждый оператор, включенный в цикл, выполняется каждый раз, когда цикл повторяется. некоторые операторы, такие как arr.length, могут быть установлены в переменную и помещены вне цикла, чтобы ускорить выполнение цикла.
let j = arr.length - 1; 
for(let i = 0; i < j; i++){
}
  • Еще один способ ускорить код — уменьшить доступ к DOM. Если вы собираетесь обращаться к DOM несколько раз, обращайтесь к нему один раз и используйте его как локальную переменную.
  • кроме того, вы также можете уменьшить количество элементов в DOM и удалить все переменные, которые вам не нужны.

  • На этом моя «учебная» часть дня завершилась. Остаток дня я буду баловаться с проектом на JavaScript, над которым работаю со времен буткемпа, и дам своему мозгу заслуженный отдых :). Сегодня хорошо провели время!

Виниа