Я использую 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, над которым работаю со времен буткемпа, и дам своему мозгу заслуженный отдых :). Сегодня хорошо провели время!
Виниа