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 = ?

18
Q

10 + “5” = ?

19
Q

5 - “2” = ?

A

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

20
Q

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

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
какво прави операторът break с цикъл?
Той не само спира действието в дадена итерация, но спира и целия цикъл.
26
В оператор switch, как можете да тествате дали променливата let е равна на 10?
switch (var) { case 10: // do something then break
27
В оператор switch, как можете да тествате дали променливата let е между 10 и 20?
декларира let извън изявлението. След това : | switch(true) { case let >10 && let < 20: // do something then break
28
Как бихте могли да намерите колко аргумента са били подадени на функция?
С arguments, използван във функцията: | arguments.length;
29
let n = null; какъв тип е typeof n?
обект. Null е примитивен тип данни, но също така е обект.
30
защо typeof null === "object" връща true?
поради начина, по който js е направен в началото, той връща тази "бъг" стойност (според MDN).
31
Посочете крайния резултат? нека x, y, z; x = ( y = 1, z = 4 );
Стойността се екзекютва от отляво надясно , имаме приоритет на операциите в скобите и връщат стойност отдясно. х = 4; y = 1; z = 4;.
32
Посочете крайния резултат? нека x, y, z; x = y = 1, z = 4;
На х е присвоена стойността на y | x = y = 1, z = 4;
33
Каква е разликата? нека x, y, z; 1/ x = y = 1, z = 4; 2/ x = ( y = 1, z = 4 );
1/ x will = 4; y = 1; z = 4;. 2/ x = y = 1, z = 4;
34
Дефинирайте понятието high-level за JavaScript?
JavaScript има голямо ниво на абстракция, скрива детайлите отдолу, по лесен за разбиране от хората. https://javascript.plainenglish.io/what-are-javascript-programming-paradigms-3ef0f576dfdb
35
Дефинирайте понятието Just in Time за JavaScript?
Езика е интерпретиран и се изпълнява ред по ред.
36
Дефинирайте понятието multi-paradigm за JavaScript?
Използва различни стилове за писане на код: 1 OOP - данните и тяхното поведение са групирани в обекти и класове. 2 Функционално програмиране - данните са разделени от поведението/чрез функции ги манипулираме и трансформираме/ Стила определя начина по който интерпретираме данните и тяхното поведение.
37
Дефинирайте понятието dynamically-typed за JavaScript?
Всяка една променлива може да променя типа си, когато е необходимо.
38
Какво прави операторът continue към цикъл?
Той спира действието в дадената итерация, но след това продължава.