Въпрос 21: Какви са възможните начини за създаване на обекти в JavaScript?

В JavaScript има няколко начина за създаване на обекти. Те включват:

Обектно буквално обозначение: Това е най-лесният начин за създаване на обект. Вие дефинирате обект, като ограждате двойки ключ-стойност във фигурни скоби {}.

const person = {
  name: 'John',
  age: 30,
};

Конструкторски функции: Можете да създавате обекти, като дефинирате конструкторски функции и след това използвате ключовата дума new, за да създавате обекти от тях.

function Person(name, age) {
  this.name = name;
  this.age = age;
}

const person = new Person('John', 30);

Object.create(): Можете да създавате обекти, като използвате метода Object.create(), който ви позволява да създадете нов обект с посочения прототипен обект.

const personPrototype = {
  greeting: function() {
    console.log(`Hello, my name is ${this.name} and I'm ${this.age} years old.`);
  }
};

const person = Object.create(personPrototype);
person.name = 'John';
person.age = 30;

Синтаксис на клас (ES6): JavaScript въведе синтаксис на клас в ES6, който предоставя по-структуриран начин за създаване на обекти.

class Person {
  constructor(name, age) {
    this.name = name;
    this.age = age;
  }

  greeting() {
    console.log(`Hello, my name is ${this.name} and I'm ${this.age} years old.`);
  }
}

const person = new Person('John', 30);

Фабрични функции: Можете също да създавате обекти с помощта на фабрични функции, които са функции, които връщат обекти. Фабричните функции могат да капсулират логиката за създаване на обект.

function createPerson(name, age) {
  return {
    name,
    age,
    greeting() {
      console.log(`Hello, my name is ${this.name} and I'm ${this.age} years old.`);
    }
  };
}

const person = createPerson('John', 30);

Въпрос 22: Какво представлява верижното свързване на прототипи?

Всеки обект в JavaScript има родител, наречен негов „прототип“. Ако даден обект няма свойство или метод, които търсите, JavaScript проверява свойствата и методите на неговия родител.
Този процес продължава нагоре в родословното дърво, докато или намери това, което търсите, или достигне много отгоре, което е вграденият набор от свойства и методи, споделяни от всички обекти. и това се нарича свързване на прототипи.

И така, прототипната верига помага на обектите да заемат или наследяват свойства и методи от своите родители, което улеснява повторното използване и споделяне на код.

Въпрос 23: Какво е JSON и неговите общи операции?

JSON (JavaScript Object Notation) е лек формат за обмен на данни, който е лесен за четене и писане от хората и лесен за анализиране и генериране от машини. Често се използва за обмен на данни между сървър и уеб приложение, както и за конфигурационни файлове и съхранение на данни. JSON е текстов формат и е независим от езика, което означава, че може да се използва с различни езици за програмиране.

Синтактичен анализ:Преобразуване на низ в собствен обект

JSON.parse(text);

Stringification: конвертиране на собствен обект в низ, така че да може да се предава в мрежата

JSON.stringify(object);

Въпрос 24: Каква е разликата между срез и снаждане?

slice() и splice() са два метода на масив в JavaScript и служат за различни цели.

Методът slice() се използва за създаване на нов масив, съдържащ част от оригиналния масив, без да се променя оригиналният масив. например-

const originalArray = [1, 2, 3, 4, 5];
const slicedArray = originalArray.slice(1, 4); // Returns [2, 3, 4]
// originalArray remains unchanged

Методът splice() се използва за добавяне или премахване на елементи от оригиналния масив, модифициране на оригиналния масив на място. например-

const originalArray = [1, 2, 3, 4, 5];
const removedElements = originalArray.splice(1, 2); // Removes [2, 3]
// originalArray is now [1, 4, 5], and removedElements is [2, 3]

Въпрос 25: Какво е функция от първи ред?

Функцията от първи ред е функция, която не приема друга функция като аргумент и не връща функция като нейна върната стойност.

const firstOrder = () => console.log("I am a first order function!");

Въпрос 26: Какво представляват функциите ламбда или стрелка?

Ламбда функциите, известни също като стрелкови функции, са кратък начин за писане на функции в JavaScript, въведен в ES6. Те имат по-кратък синтаксис, което ги прави чудесни за прости функции, и наследяват this от заобикалящия контекст. Ето един кратък пример:

// Traditional function expression
const add = function(x, y) {
  return x + y;
};

// Equivalent lambda function
const addLambda = (x, y) => x + y;

Въпрос 27: Какво е първокласна функция?

В JavaScript „първокласна функция“ (известна също като „първокласен гражданин“ или „първокласен обект“) се отнася до функция, която може да се третира точно като всеки друг тип данни, като променлива, обект , или номер. Това означава, че в език с първокласни функции функциите могат да бъдат:

1. Присвоено на променливи: Можете да присвоите функция на променлива, правейки я извикана чрез тази променлива.

2. Предава се като аргументи: Можете да предавате функция като аргумент на друга функция.

3. Върнато от функции: Една функция може да бъде върнатата стойност на друга функция.

4. Съхранени в структури от данни: Функциите могат да се съхраняват в структури от данни като масиви, обекти или списъци.

Ето един пример в JavaScript, който поддържа първокласни функции:

// Assigning a function to a variable
const sayHello = function() {
  console.log("Hello, world!");
};

// Passing a function as an argument
function greet(greetingFunction) {
  greetingFunction();
}
greet(sayHello);

// Returning a function from a function
function createMultiplier(factor) {
  return function(x) {
    return x * factor;
  };
}
const double = createMultiplier(2);
console.log(double(5)); // Outputs 10

// Storing functions in an array
const functionsArray = [sayHello, double];

Въпрос 28: Какво е функция от по-висок ред?

Функция от по-висок ред е функция, която приема друга функция като аргумент или връща функция като върната стойност, или и двете.

//Functions as Arguments (Callback Functions):
function operateOnArray(arr, callback) {
  const result = [];
  for (const item of arr) {
    result.push(callback(item));
  }
  return result;
}

const numbers = [1, 2, 3, 4, 5];
const doubledNumbers = operateOnArray(numbers, function(x) {
  return x * 2;
});
// doubledNumbers will be [2, 4, 6, 8, 10]

//Functions as Return Values: 
function createMultiplier(factor) {
  return function(x) {
    return x * factor;
  };
}

const double = createMultiplier(2);
const triple = createMultiplier(3);

console.log(double(5)); // Outputs 10
console.log(triple(5)); // Outputs 15

Въпрос 29: Какво е унарна функция?

Унарна функция е функция, която приема точно един аргумент. С други думи, това е функция, която работи с един входен параметър или променлива.

function square(x) {
  return x * x;
}

Въпрос 30: Какво представлява функцията за къри?

Curry е техника във функционалното програмиране, при която функция с множество аргументи се трансформира в поредица от функции, всяка от които приема един аргумент. Тези междинни функции връщат други функции, докато не бъдат събрани всички аргументи и крайната функция произведе желания резултат. Къри е кръстен на математика Хаскел Къри.

// A regular function that adds two numbers
function add(x, y) {
  return x + y;
}

// A curried version of the add function
function curriedAdd(x) {
  return function(y) {
    return x + y;
  };
}

// Using the curried function
const add5 = curriedAdd(5);
console.log(add5(3)); // Outputs 8

Част 4…