Js Basic Flashcards

Js Basic

1
Q

Променливи

A

Променливите съдържат данни за многократна употреба в програма. JavaScript ще изведе грешка, ако се опитате да преинициализирате константни променливи. Не можете да преинициализирате променливи, които създавате с ключовата дума const. Недефинирани променливи съхраняват примитивния тип данни undefined. Математическите оператори за присвояване улесняват изчисляването на нова стойност и присвояването й на същата променлива. Операторът + се използва за интерполиране (комбиниране) на множество низове. В JavaScript ES6 се използват обратни отметки (`) и $ } за интерполиране на стойности в низ.

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

Недефинираните променливи съхраняват примитивния тип данни като

A

Undefined

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

Колко типа данни има ECMAScript?

A

5 прости: undefined, null, number, boolean, string;

и 1 комплексен: обект

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

как намираме типа данните (типа) на променлива? напр. какъв е типът на myVar?

A

typeof myVar; (няма нужда от скоби, тъй като typeof е оператор, а не функция).
По този начин, console.log(typeof myVar);

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

кога трябва да се присвои на променлива ‘null’

A

Когато очаквате да съдържа препратка към обект. По този начин можете изрично да проверите за стойността null, за да проверим дали на let е присвоена препратка към обект.

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

Защо това е добра/лоша идея:

if (a + b == 0.3) { do something… }

A

Лоша идея, защото EMCAScript закръглява грешки с плаващи числа. 0,1 + 0,2 ще е равно на 0,300000000003, а не само на 0,3.

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

вярно/невярно: NaN == NaN

A

false.

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

Как можете да определите дали нещо е NaN?

A

използвайте функцията isNaN().

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

Как най-добре да конвертирате нещо в число ?

A

Обикновено се използва parseInt(), а не Number() или ‘+’, тъй като Number() има някои неочаквани стойности.
Например: Number(“”) ще върне нула, а не NaN. Number(“023blue”) ще бъде NaN, докато parseInt(“023blue”) ще бъде 23.

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

какво е “унарен” оператор?

A

работи само с една стойност, като ++ или – както в ++let.

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

let a = 10;
console.log( a++ + 10)
какъв е резултата?

A

20, защото ++ e след операцията.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q
let a = 10;	
console.log(++a + 10) какъв е резултата?
A

21, защото ++ e преди операцията.

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

let a = false. Какво е a++?

A

numeric 1

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

нека a = “1”; Какво е +a?

A

numeric 1

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

10 % 9 = ?

A

1

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

Как можете да намерите коя дума ще е първа, по азбучен ред, между “Brick” и “alphabet”?

A

Brick.toLowerCase() < “alphabet”.toLowerCase();
// false, както се очаква.
Или
“Brick”.localeCompare(“alphabet”);

17
Q

10 % 2 = ?

A

0

18
Q

10 + “5” = ?

A

105

19
Q

5 - “2” = ?

A

3, защото “2” се преобразува в цифра 2.

20
Q

a < “b” (вярно или невярно)?

A

TRUE

21
Q

B < “a” (вярно или невярно)?

A

true, защото главните букви са на първо място.

22
Q

Как операторът за идентично равенство е различен от оператора за равно?

A

Прави същото, но не преобразува операндите преди тестване на равенството. Например, “55” === 55 ще бъде falce. Въпреки това (“5”-2) === 3 ще бъде true.

23
Q

Каква е разликата между изявление do/while и просто изявление while?

A

Do/while ще се изпълни поне веднъж, винаги.
При while ако , не се изпълнява условието , while никога няма да не се изпълни:

	let i = 10; do { i += 10; } while (i<5);
	// това ще се изпълни веднъж и аз ще стана 20.
24
Q

В цикъла for посочете терминът за отделните части a, b и c?

for (part a, part b, part c){ // do something }

A

част а е инициализацията; част b е expression; част c е the post loop expression.

25
Q

какво прави операторът break с цикъл?

A

Той не само спира действието в дадена итерация, но спира и целия цикъл.

26
Q

В оператор switch, как можете да тествате дали променливата let е равна на 10?

A

switch (var) { case 10: // do something then break

27
Q

В оператор switch, как можете да тествате дали променливата let е между 10 и 20?

A

декларира let извън изявлението. След това :

switch(true) { case let >10 && let < 20: // do something then break

28
Q

Как бихте могли да намерите колко аргумента са били подадени на функция?

A

С arguments, използван във функцията:

arguments.length;

29
Q

let n = null; какъв тип е typeof n?

A

обект. Null е примитивен тип данни, но също така е обект.

30
Q

защо typeof null === “object” връща true?

A

поради начина, по който js е направен в началото, той връща тази “бъг” стойност (според MDN).

31
Q

Посочете крайния резултат?

нека x, y, z;
x = ( y = 1, z = 4 );

A

Стойността се екзекютва от отляво надясно , имаме приоритет на операциите в скобите и връщат стойност отдясно.
х = 4; y = 1; z = 4;.

32
Q

Посочете крайния резултат?
нека x, y, z;
x = y = 1, z = 4;

A

На х е присвоена стойността на y

x = y = 1, z = 4;

33
Q

Каква е разликата?

нека x, y, z;
1/
x = y = 1, z = 4;

2/
x = ( y = 1, z = 4 );

A

1/
x will = 4; y = 1; z = 4;.
2/
x = y = 1, z = 4;

34
Q

Дефинирайте понятието high-level за JavaScript?

A

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

https://javascript.plainenglish.io/what-are-javascript-programming-paradigms-3ef0f576dfdb

35
Q

Дефинирайте понятието Just in Time за JavaScript?

A

Езика е интерпретиран и се изпълнява ред по ред.

36
Q

Дефинирайте понятието multi-paradigm за JavaScript?

A

Използва различни стилове за писане на код:
1 OOP - данните и тяхното поведение са групирани в обекти и класове.
2 Функционално програмиране - данните са разделени от поведението/чрез функции ги манипулираме и трансформираме/
Стила определя начина по който интерпретираме данните и тяхното поведение.

37
Q

Дефинирайте понятието dynamically-typed за JavaScript?

A

Всяка една променлива може да променя типа си, когато е необходимо.

38
Q

Какво прави операторът continue към цикъл?

A

Той спира действието в дадената итерация, но след това продължава.