JS Data, Objects and this Flashcards

1
Q

Обяснете какви са данните и защо са важни.

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Обяснете какви са данните и защо са важни.2

A

Данните се репрезентират посредством променливи, които съдържат литерали. За получаване на допълнителна стойност се групират в обекти. Данните може да се предават на друг софтуер JSON XML /има много семантика/ сървъри. Запазване в /Persistent storage/ консистентен сторидж данни

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Обяснете какви са данните и защо са важни.3

A

“Компютърните данни са:
Характеристики или информация
Придобити чрез хардуерен и/или софтуерен вход

Обикновено „данните“ и „информацията“ са взаимозаменяеми, но
Данните се превръщат в информация, когато се поставят в контекст
Контекстът дава значение на данните
Метаданните са данни за данни”

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Създавайте обекти, които имат както състояние, така и поведение.

A

Обектите са съвкупност от елементи с ключ и стойност, който могът да се копират и обработват. Името на обекта персонализира данните, които се подават. В обектите може да има функционалности, като към съответния ключ се добавя функция /наричани методи/, така обектите обединяват и групират данните с логиката в едно. ООП позволява да използваме обектите като нещо което да даде структура на кода ни По този начин свързаната логика винаги остава със свързаните данни

let person = {
  name: 'Lili',
  age: 25,
  getName() {
    return this.name;
  },
};

console.log(person.getName());

"Обектът е проста конструкция от двойки ключ-стойност, често наричани свойства на обекта.
Обектите осигуряват лесен начин за
Групиране на свързани данни
Разделянето му на смислени парчета
Прехвърляне на данните като цяло"
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Използвайте обекти за създаване на структура в кода.

A

Oбектите обединяват и групират данните с логиката в едно. ООП позволява да използваме обектите като нещо което да даде структора на кода ни По този начин свързаната логика винаги остава със свързаните данни Можете директно да получите достъп до състоянието на обект чрез . person.name Можете да получите достъп до състоянието чрез метод getName() {
return this.name;
},

let person = {
  name: 'Lili',
  age: 25,
  getName() {
    return this.name;
  },
};

console.log(person.getName());

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Защитете състоянието на обекта чрез неговото поведение.

A

Данните са основни за вашия софтуер, трябва да са винаги във валидно (за вашия софтуер) състояние Какво ни пречи да зададем директно стойността ?
Екипните споразумение, не винаги са ефективни, при смяна на екипа или забравяне бихме имали грешки. Предотвратяване на грешки и ефективна работа на софтуера са основните причини да търсим валидация на данните
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);
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Обяснете какво означава ключовата дума ‘this’

A

Това е placeholder който получава своята стойност, когато се извика функция. Препратката, се определя от call-site , където се извиква функцията
Трябва да прегледа call-site за да определите кое от 4-те правила е приложимо.
Default Binding; Implicit Binding; Explicit Binding; new Binding
Накратко, това не е нито препратка към самата функция, нито е препратка към лексикалния обхват на функцията.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Какво представляват данните и защо е важно те да са валидни?

A

Данните са основни за вашия софтуер, трябва да са винаги във валидно (за вашия софтуер) състояние Какво ни пречи да зададем директно стойността ?
Екипните споразумение, не винаги са ефективни, при смяна на екипа или забравяне бихме имали грешки. Предотвратяване на грешки и ефективна работа на софтуера са основните причини да търсим валидация на данните

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

В контекста на обектите какво е състояние и поведение?

A

Един обект може да има a
Състояние – данните, които обектът притежава Хората имат:
Име, което е низ
Възраст, което е число
Телефон, който може да бъде низ
Поведение – логиката, която може да се приложи към тези данни Хората могат: (поведение)
Кажете „Хей, аз съм [Име] и съм [Възраст] на години.“
Кажете „Можете да се свържете с мен на [телефон].“

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Какво означава ключовата дума “this”?

A

Това е placeholder който получава своята стойност, когато се извика функция. Препратката, се определя от call-site , където се извиква функцията

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Как да определим стойността на “this”?

A

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"
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Кои са 4-те правила, които могат да ни помогнат да определим this?

A
4-те правила са. 
Default Binding;
 Implicit Binding; 
Explicit Binding; 
new Binding
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

1 Default Binding

A

1 This сочи към глобалния обект при използване на Node
2 This сочи към window обект при използване на браузер 3.използване на ‘use strict’ - undefined При използване на ‘use strict’ няма обръщение към глобалния обект резултата ще е undefined

const someFunc = function () {
  console.log(this.name);
};
name = 'L'
someFunc(); //L
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

2 Implicit Binding;

A

Извикваме 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

3.1 Explicit Binding;

A

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']);
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

3.2Explicit (hard) Binding

A

Thisвсе още се отнася до глобалния обхват
Използваме .bind() за задаване на контекста на функциите, след което можем да го съхраняваме, защото .bind() връща нова, обвързана функция

const sayName = function () {
    console.log(this.name);
  };
const person = {
    name: 'Pesho',
  };
const boundSayName = sayName.bind(person);
boundSayName();