Js Basic Flashcards
Js Basic
Променливи
Променливите съдържат данни за многократна употреба в програма. JavaScript ще изведе грешка, ако се опитате да преинициализирате константни променливи. Не можете да преинициализирате променливи, които създавате с ключовата дума const. Недефинирани променливи съхраняват примитивния тип данни undefined. Математическите оператори за присвояване улесняват изчисляването на нова стойност и присвояването й на същата променлива. Операторът + се използва за интерполиране (комбиниране) на множество низове. В JavaScript ES6 се използват обратни отметки (`) и $ } за интерполиране на стойности в низ.
Недефинираните променливи съхраняват примитивния тип данни като
Undefined
Колко типа данни има ECMAScript?
5 прости: undefined, null, number, boolean, string;
и 1 комплексен: обект
как намираме типа данните (типа) на променлива? напр. какъв е типът на myVar?
typeof myVar; (няма нужда от скоби, тъй като typeof е оператор, а не функция).
По този начин, console.log(typeof myVar);
кога трябва да се присвои на променлива ‘null’
Когато очаквате да съдържа препратка към обект. По този начин можете изрично да проверите за стойността null, за да проверим дали на let е присвоена препратка към обект.
Защо това е добра/лоша идея:
if (a + b == 0.3) { do something… }
Лоша идея, защото EMCAScript закръглява грешки с плаващи числа. 0,1 + 0,2 ще е равно на 0,300000000003, а не само на 0,3.
вярно/невярно: NaN == NaN
false.
Как можете да определите дали нещо е NaN?
използвайте функцията isNaN().
Как най-добре да конвертирате нещо в число ?
Обикновено се използва parseInt(), а не Number() или ‘+’, тъй като Number() има някои неочаквани стойности.
Например: Number(“”) ще върне нула, а не NaN. Number(“023blue”) ще бъде NaN, докато parseInt(“023blue”) ще бъде 23.
какво е “унарен” оператор?
работи само с една стойност, като ++ или – както в ++let.
let a = 10;
console.log( a++ + 10)
какъв е резултата?
20, защото ++ e след операцията.
let a = 10; console.log(++a + 10) какъв е резултата?
21, защото ++ e преди операцията.
let a = false. Какво е a++?
numeric 1
нека a = “1”; Какво е +a?
numeric 1
10 % 9 = ?
1
Как можете да намерите коя дума ще е първа, по азбучен ред, между “Brick” и “alphabet”?
Brick.toLowerCase() < “alphabet”.toLowerCase();
// false, както се очаква.
Или
“Brick”.localeCompare(“alphabet”);
10 % 2 = ?
0
10 + “5” = ?
105
5 - “2” = ?
3, защото “2” се преобразува в цифра 2.
a < “b” (вярно или невярно)?
TRUE
B < “a” (вярно или невярно)?
true, защото главните букви са на първо място.
Как операторът за идентично равенство е различен от оператора за равно?
Прави същото, но не преобразува операндите преди тестване на равенството. Например, “55” === 55 ще бъде falce. Въпреки това (“5”-2) === 3 ще бъде true.
Каква е разликата между изявление do/while и просто изявление while?
Do/while ще се изпълни поне веднъж, винаги.
При while ако , не се изпълнява условието , while никога няма да не се изпълни:
let i = 10; do { i += 10; } while (i<5); // това ще се изпълни веднъж и аз ще стана 20.
В цикъла for посочете терминът за отделните части a, b и c?
for (part a, part b, part c){ // do something }
част а е инициализацията; част b е expression; част c е the post loop expression.
какво прави операторът break с цикъл?
Той не само спира действието в дадена итерация, но спира и целия цикъл.
В оператор switch, как можете да тествате дали променливата let е равна на 10?
switch (var) { case 10: // do something then break
В оператор switch, как можете да тествате дали променливата let е между 10 и 20?
декларира let извън изявлението. След това :
switch(true) { case let >10 && let < 20: // do something then break
Как бихте могли да намерите колко аргумента са били подадени на функция?
С arguments, използван във функцията:
arguments.length;
let n = null; какъв тип е typeof n?
обект. Null е примитивен тип данни, но също така е обект.
защо typeof null === “object” връща true?
поради начина, по който js е направен в началото, той връща тази “бъг” стойност (според MDN).
Посочете крайния резултат?
нека x, y, z;
x = ( y = 1, z = 4 );
Стойността се екзекютва от отляво надясно , имаме приоритет на операциите в скобите и връщат стойност отдясно.
х = 4; y = 1; z = 4;.
Посочете крайния резултат?
нека x, y, z;
x = y = 1, z = 4;
На х е присвоена стойността на y
x = y = 1, z = 4;
Каква е разликата?
нека 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;
Дефинирайте понятието high-level за JavaScript?
JavaScript има голямо ниво на абстракция, скрива детайлите отдолу, по лесен за разбиране от хората.
https://javascript.plainenglish.io/what-are-javascript-programming-paradigms-3ef0f576dfdb
Дефинирайте понятието Just in Time за JavaScript?
Езика е интерпретиран и се изпълнява ред по ред.
Дефинирайте понятието multi-paradigm за JavaScript?
Използва различни стилове за писане на код:
1 OOP - данните и тяхното поведение са групирани в обекти и класове.
2 Функционално програмиране - данните са разделени от поведението/чрез функции ги манипулираме и трансформираме/
Стила определя начина по който интерпретираме данните и тяхното поведение.
Дефинирайте понятието dynamically-typed за JavaScript?
Всяка една променлива може да променя типа си, когато е необходимо.
Какво прави операторът continue към цикъл?
Той спира действието в дадената итерация, но след това продължава.