Въпрос 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…