1. Истинные и ложные значения. В JavaScript при использовании условия вы должны знать, какое из них дает истинное значение, а какое — ложное. Важно знать об истинных и ложных ценностях; в противном случае ваше условие может не дать ожидаемых значений.
Falsy Values:
// 0, "", undefined, null, NaN
let name = "";
if(name){
   console.log("condition is true") 
}else{
   console.log("condition is false") //Expected output
}
Truthy Values:
// '0', ' ', [], {}
let name = '0';
if(name){
  console.log("condition is true") //Expected output
}else{
   console.log("condition is false")
}

2. Null или Undefined. Вы можете получить значение undefined разными способами. Предположим, вы объявляете переменную, но не помещаете в нее значение, в объекте нет свойства, но вы хотите получить к нему доступ. хотите получить доступ к элементу в массиве, но этой позиции там нет, но с точки зрения Null она должна быть установлена ​​​​явно.

let ages = [10, 15, 20, 45]
  console.log(ages[7]);
//output: undefined

3. Двойное равенство против тройного равенства: Двойное равенство проверяет значение, но не проверяет тип, а тройное равенство также проверяет значение и тип.

Double Equal:
const first = 2;
const second = '2';
if(first == second){
   console.log("condition is true"); //Expected Output
}else{
  console.log("condition is false");
}
Triple Equal:
const first = 2;
const second = '2';
if(first == second){
console.log("condition is true"); 
}else{
console.log("condition is false");//Expected Output
}

4.Блочная область: блочная область означает, что значения переменных не читаются вне объявления, что означает, что за пределами объявления переменной вы не можете прочитать ее значение. В коде blew мы можем видеть, что мы можем получить доступ к результатам внутри функции суммы, но когда мы используем результаты вне функции, это выдает ошибку.

function sum(first, second){
  let result = first + second;
  return result;
}
const output = sum(3,10)
console.log(output);
console.log(result); //Throw error

5.Карта, фильтр, поиск:карта используется с точки зрения цикла, в основном это самая простая версия цикла в JavaScript, она работает так же, как цикл , то же самое относится и к фильтру, но он возвращает массив и возвращает первое совпадение с условием.

const students = [
{ id: 1, name: 'X'},
{ id: 2, name: 'Y'},
{ id: 3, name: 'Z'},
];
map:
const names = students.map( student => student.name );
console.log(names); //output: [ 'X', 'Y', 'Z' ]
filter:
const names = students.filter( student => student.name );
console.log(names); 
//output: [ { id: 1, name: 'X' }, { id: 2, name: 'Y' }, { id: 3, name: 'Z' } ]
find:
const names = students.find( student => student.name );
console.log(names)  //output: { id: 1, name: 'X' }

6. связать, вызвать и применить: еслиесли есть какой-то объект, предположим, что x,y,z являются объектами, они имеют разные значения, но общий метод говорит о налоге. В общем, вы должны написать весь этот метод во всех три объекта, но если вы привязываетесь, вы можете использовать один налоговый метод для всех из них, но с точки зрения вызова он может напрямую обращаться к налоговому методу, вам нужно только передать этот аргумент (какой из них вы хотите использовать налоговый метод) и параметры для налоговый метод, такой же, как и apply, но здесь вы должны передать параметры в виде массива.

const x = {
  name: 'X',
  salary: 100,
  tax: function(amount){
        this.salary = this.salary - amount;
         return this.salary
}
}
const y = {
  name: 'Y',
  salary: 200,
}
const Z = {
  name: 'Z',
  salary: 50,
}
//bind
  const xTax = x.tax.bind(y);
  xTax(50);
  console.log(y.salary); //output: 150
//call:
  x.tax.call(y, 100)
  console.log(y.salary);//output: 100
//apply
  x.tax.apply(y, [60])
  console.log(y.salary);

7. новое ключевое слово. В предыдущем примере мы используем три объекта, эти объекты похожи, но мы пишем этот объект три раза, чтобы оптимизировать, что мы можем использовать новое ключевое слово, чтобы использовать новое ключевое слово, которое мы должны использовать компоненты класса.

class Person {
constructor(Name, salary) {
   this.Name = Name;
   this.salary = salary;
}
}
const x = new Person('X',100)
console.log(x); //output: Person { Name: 'X', salary: 100 }
const y = new Person('Y',200)
console.log(y); //output: Person { Name: 'Y', salary: 200 }
const z = new Person('Z',300)
console.log(z); //output: Person { Name: 'Z', salary: 300 }

8. Окно: для создания веб-сайта мы используем множество вещей, таких как история, документ, местоположение, все они являются свойствами Windows, мы можем проверить их на консоли в браузере.

9.Область действия функции.В JavaScript существует два типа области видимости функции: одна — локальная область, другая — глобальная область действия. Когда переменная объявлена ​​в функции, она имеет локальную область действия для функции, потому что они получают доступ только из этой функции, с другой стороны, когда переменная объявлена ​​вне функции, она находится в глобальной области видимости, из всех функций. , скрипт на этой странице может получить к ней доступ.

//Local Function:
//can't access Name

function myLocalFunction() {
  const Name = "JavaScript";

  // can access Name

}
//Global Function:
const Name = "JavaScript";

// can access Name

function myGlobalFunction() {

 // can access Name

}

10.async-await:async — это функция, объявленная с ключевым словом async. Асинхронные функции являются частью конструктора асинхронных функций JavaScript, а ожидание включается в асинхронном режиме. Async и await — это асинхронная функция, основанная на промисе, где, когда промис разрешается, он ждет и работает асинхронно. Обычно, когда разработчики используют API для обработки промисов, они используют функцию async-await.

Спасибо, что прочитали эту статью.