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