Ha fiatal JavaScript-fejlesztőként jelentkezik egy interjúra, madártávlatból tekintheti meg a következő témákat:

1. Mi az a JavaScript/JavaScript elnevezése

Mennyit tudsz a JavaScript felfedezéséről? Vagy ha azt mondom, miért hívják ezt a nyelvet JavaScriptnek? Már létezik egy Java nevű nyelv. Tehát mi a rejtély a JavaScript elnevezése mögött?

Az MDN webdokumentuma szerint:

A JavaScriptet 1995-ben hozta létre Brendan Eich, miközben a Netscape mérnöke volt. A JavaScriptet először 1996 elején adták ki a Netscape 2-vel. Eredetileg LiveScriptnek hívták, de átnevezték egy szerencsétlen marketingdöntés során, amely megpróbálta kamatoztatni a Sun Microsystem Java nyelvének népszerűségét – annak ellenére, hogy a kettőnek nagyon kevés volt. közös. Ez azóta is zavart okoz.

Tehát a JavaScript egyszálú, nem blokkoló, értelmezett, kliensoldali és szerveroldali szkriptnyelv. Egyszálú, mert egyszerre egyetlen feladatot tud végrehajtani. A JavaScript aszinkron természetű. Lásd az alábbi példát:

console.log("Hello World!")
setTimeout(() => {
    console.log("Hello lovely girl!")
}, 2000)
console.log("Hello kids!")
Output:
Hello World!
Hello kids!
Hello lovely girl!

Szóval itt kivégezték a gyerekeket a kedves lány előtt. JS-nek nincs elég ideje várni a kedves lányra. Rengeteg munkája van. Tehát ez is egy példa arra, hogy a JS aszinkron módon működik egyszálú nyelvként. Nem foglalkozunk mélyen a javascript működésével, de ez egy népszerű interjúkérdés, amelyre érdemes figyelni. itt van egy részletes magyarázat a JS eseményhurokról, ezt megnézheti

https://devfuad.medium.com/have-you-ever-thought-about-how-javascript-works-behind-the-scene-a8f2aee331c4

2. JavaScript vs Java

Nos, ez egy gyakori forgatókönyv, amelyben az újoncok többsége összezavarodik a tanulási út legelején. tehát nézzük a következő pontokat:

  • A Java többszálú, a JS egyszálú
  • A Java egy objektum-orientált programozási nyelv, a JS pedig egy objektum-orientált szkriptnyelv.
  • A Java főként szerveroldali, a JS mindkettőhöz.
  • A Java egy fordított nyelv, a JS értelmezett

3. Nem deklarált vs undefined vs null

Nem deklarált változók nem léteznek a programban, a var, const vagy let kulcsszó nélkül deklarálva, és egy futásidejű hibaüzenet jelenik meg, míg az undefined azt jelenti, hogy egy változó deklarálva van, de nincs érték hozzárendelve, így a kimenet nem definiált. A nulla egy változó primitív értéke. Meglepő módon a null típusa objektum (érdekes történelem áll a háttérben). Bár tulajdonságokat nem adhat hozzá(:D)

4. Az isNaN(), parseInt(), parseFloat() függvény használata

A parseInt(), a parseFloat() egyaránt egyszerűen számokká alakítja a karakterláncokat, de a kis különbség az, hogy a parseFloat csak 10 alapszámra konvertálja. A parseInt() a NaN kimenetet adja meg, ha betűket adunk át a konvertáláshoz. isNaN() függvény igazat ad vissza, ha az argumentum nem szám, egyébként hamis. A „+” operátort is használhatjuk számmá konvertáláshoz. Mi történik, ha egyszerre elemezzük a számokat és a betűket?

parseInt(“2xyz”) //2
parseInt(“xyz2”) //NaN

5. charAt(), indexOf()

A charAt() metódus a megadott indexen lévő karaktert adja vissza egy karakterláncban:

“Hello World!”.charAt(4) // “o”

Az indexOf() metódus egy megadott karakter pozícióját adja vissza egy karakterláncban:

“Hello World!”.indexOf(“W”) //6
“Hello World!”.indexOf(“w”) //-1

6. split(), slice()

A split() metódus egy karakterláncot részkarakterláncok listájára vág, ezeket a karakterláncokat egy tömbben tartja, és végül visszaadja a tömböt.

“Hello World!”.split(“ ”, 4) // [“Hello”, “World!”]
“Hello World!”.split(“ ”, 1) // [“Hello”]
“Hello World!”.split(“”)
 // [“H”, “e”, “l”, “l”, “o”, “ “, “W”, “o”, “r”, “l”, “d”, “!”]
“Hello World!”.split(“”, 3) // [“H”, “e”, “l”]

A slice() metódus egy karakterláncot új karakterláncba szúr az eredeti módosítása nélkül.

“Hello World!”.slice(2) // “llo World!”
“Hello World!”.slice(2, 5) // “llo”
“Hello World!”.slice(2, -5) // “llo W”

7. push(), unshift()

push() metódus beszúr egy vagy több elemet egy tömb végére, és visszaadja az új tömb hosszát:

[“React”, “Node”, “MongoDB”].push(“Express”) // 4
new array: [“React”, “Node”, “MongoDB”, “Express”]

Az unshift() metódus egy vagy több elemet injektál egy tömb elejére, és visszaadja a tömb új hosszát:

[“React”, “Node”, “MongoDB”].unshift(“Express”) // 4
new array: [“Express”, “React”, “Node”, “MongoDB”]

8. pop(), shift()

A pop() metódus kiüríti a tömb utolsó elemét, és visszaadja az eltávolított elemet:

[“React”, “Node”, “MongoDB”, “Express”].pop() // “Express”
new array: [“React”, “Node”, “MongoDB”]

A shift() metódus eltünteti az első elemet a tömbből, és visszaadja az eltüntetett elemet:

[“Express”, “React”, “Node”, “MongoDB”].shift() // “Express”
new array: [“React”, “Node”, “MongoDB”]

9. map(), filter(), find()

A map() egy új tömböt hoz létre, amely tartalmazza a megadott tömb elemei közötti iteráció során kapott eredményeket:

const array = [2, 4, 6, 8];
const map = array.map(elem => elem * elem);
console.log(map); // [4, 16, 36, 64]

A filter() metódus egy létező tömb elemeinek tömbjét szállítja, amely argumentumként elfogad egy visszahívási függvényt, és teljesíti a megadott függvény összes feltételét:

const arr = [1, 3, 5, 7];
const filter = arr.filter(elem => elem > 4)
console.log(filter) // [5, 7]

A filter() metódus megadja az első elemet (nem tömböt) egy meglévő tömbből, amely megfelel az összes feltételnek:

const arr = [1, 3, 5, 7];
const find = arr.find(elem => elem > 4)
console.log(find) //5

10. ceil(), padló(), kerek()

A Math.ceil() metódus segítségével a számparamétert a legközelebbi legnagyobb egész számra kerekítik:

Math.ceil(2.0001) // 3

A Math.floor() metódus arra szolgál, hogy a számparamétert a legközelebbi legkisebb egész számra kerekítse:

Math.floor(2.9999) // 2

A Math.round() egy számot a legközelebbi egész számra kerekít:

Math.round(2.0001) // 2
Math.round(2.49) // 2
Math.round(2.5) // 3