JS Data, Objects and this Flashcards
Обяснете какви са данните и защо са важни.
Компютинг процес: Целта при разработка на софтуер е той да приема чрез импут, обработва и запазва данните на сървър и визуализира конкретни данни. Данните са информация или характеристика, която е събрана посредством софтуер или хардуер предава се на операционната система и се обработва. Данни и информация се различават. Данните се получават в суров вид за да са информация се поставят в контекст получаване на имена за да са ин-я трябва да знаем име на човек улица или др. Мета данни дават конкретика за дата час ил др.
Обяснете какви са данните и защо са важни.2
Данните се репрезентират посредством променливи, които съдържат литерали. За получаване на допълнителна стойност се групират в обекти. Данните може да се предават на друг софтуер JSON XML /има много семантика/ сървъри. Запазване в /Persistent storage/ консистентен сторидж данни
Обяснете какви са данните и защо са важни.3
“Компютърните данни са:
Характеристики или информация
Придобити чрез хардуерен и/или софтуерен вход
Обикновено „данните“ и „информацията“ са взаимозаменяеми, но
Данните се превръщат в информация, когато се поставят в контекст
Контекстът дава значение на данните
Метаданните са данни за данни”
Създавайте обекти, които имат както състояние, така и поведение.
Обектите са съвкупност от елементи с ключ и стойност, който могът да се копират и обработват. Името на обекта персонализира данните, които се подават. В обектите може да има функционалности, като към съответния ключ се добавя функция /наричани методи/, така обектите обединяват и групират данните с логиката в едно. ООП позволява да използваме обектите като нещо което да даде структура на кода ни По този начин свързаната логика винаги остава със свързаните данни
let person = { name: 'Lili', age: 25, getName() { return this.name; }, };
console.log(person.getName());
"Обектът е проста конструкция от двойки ключ-стойност, често наричани свойства на обекта. Обектите осигуряват лесен начин за Групиране на свързани данни Разделянето му на смислени парчета Прехвърляне на данните като цяло"
Използвайте обекти за създаване на структура в кода.
Oбектите обединяват и групират данните с логиката в едно. ООП позволява да използваме обектите като нещо което да даде структора на кода ни По този начин свързаната логика винаги остава със свързаните данни Можете директно да получите достъп до състоянието на обект чрез . person.name Можете да получите достъп до състоянието чрез метод getName() {
return this.name;
},
let person = { name: 'Lili', age: 25, getName() { return this.name; }, };
console.log(person.getName());
Защитете състоянието на обекта чрез неговото поведение.
Данните са основни за вашия софтуер, трябва да са винаги във валидно (за вашия софтуер) състояние Какво ни пречи да зададем директно стойността ?
Екипните споразумение, не винаги са ефективни, при смяна на екипа или забравяне бихме имали грешки. Предотвратяване на грешки и ефективна работа на софтуера са основните причини да търсим валидация на данните
let person3 = {
name: ‘L’,
age: 26,
setAge(newAge) { if (newAge <= 18 || newAge >= 120) { throw 'Invalid age!'; } this.age = newAge; }, }; person3.setAge(-20); Можете да промените състоянието директно person.age=25; Можете също да използвате метод за промяна на състоянието letperson={ name:'Ivan', age:20, setAge:function(newAge){ this.age=newAge; } } person.setAge(25);
Обяснете какво означава ключовата дума ‘this’
Това е placeholder който получава своята стойност, когато се извика функция. Препратката, се определя от call-site , където се извиква функцията
Трябва да прегледа call-site за да определите кое от 4-те правила е приложимо.
Default Binding; Implicit Binding; Explicit Binding; new Binding
Накратко, това не е нито препратка към самата функция, нито е препратка към лексикалния обхват на функцията.
Какво представляват данните и защо е важно те да са валидни?
Данните са основни за вашия софтуер, трябва да са винаги във валидно (за вашия софтуер) състояние Какво ни пречи да зададем директно стойността ?
Екипните споразумение, не винаги са ефективни, при смяна на екипа или забравяне бихме имали грешки. Предотвратяване на грешки и ефективна работа на софтуера са основните причини да търсим валидация на данните
В контекста на обектите какво е състояние и поведение?
Един обект може да има a
Състояние – данните, които обектът притежава Хората имат:
Име, което е низ
Възраст, което е число
Телефон, който може да бъде низ
Поведение – логиката, която може да се приложи към тези данни Хората могат: (поведение)
Кажете „Хей, аз съм [Име] и съм [Възраст] на години.“
Кажете „Можете да се свържете с мен на [телефон].“
Какво означава ключовата дума “this”?
Това е placeholder който получава своята стойност, когато се извика функция. Препратката, се определя от call-site , където се извиква функцията
Как да определим стойността на “this”?
Explicid - Ако функцията е извикана с call()или apply() или чрез хайoрдер функцията bind()
Implicit Binding - Извикваме This през обект/This е във функция, която е част или се преизполлзва във конкретния обект/
Ako не е Implicit or Explicid тя е Default Binding
1 This сочи към глобалния обект при използване на Node
2 This сочи към window обект при използване на браузер
"const someFunc = function () { console.log(this); }; someFunc(); // Object [global] { global: [Circular *1], clearInterval: [Functio"
Кои са 4-те правила, които могат да ни помогнат да определим this?
4-те правила са. Default Binding; Implicit Binding; Explicit Binding; new Binding
1 Default Binding
1 This сочи към глобалния обект при използване на Node
2 This сочи към window обект при използване на браузер 3.използване на ‘use strict’ - undefined При използване на ‘use strict’ няма обръщение към глобалния обект резултата ще е undefined
const someFunc = function () { console.log(this.name); }; name = 'L' someFunc(); //L
2 Implicit Binding;
Извикваме This през обект/This е във функция, която е част или се преизползва във конкретния обект/
“nested obj let pesho = {
name: ‘Pesho’,
sayName: sayName,
};
let parent = { name: 'Lio', child: pesho, }; pesho.sayName(); //Pesho parent.child.sayName(); //Pesho" "const sayName = function () { console.log(this.name); };
let pesho = { name: 'Pesho', sayName: sayName, }; pesho.sayName(); //Pesho
3.1 Explicit Binding;
This все още се отнася до глобалния обхват
Ние използваме .call() или apply()/при него аргумента/текста/ се подава в масив, за да зададем контекста на функциите и директно да го извикаме с този контекст
const sayName = function () { console.log(this.name); }; const person = { name: 'Pesho', }; sayName.call(person); //Pesho
const sayName = function (text) { console.log(`${text} ${this.name}`); }; const person = { name: 'Pesho', }; sayName.call(person, 'Hello'); //Pesho sayName.apply(person, ['Hello']);