top 45 javascript interview questions with detailed answers
Najczęściej zadawane podstawowe i zaawansowane pytania do wywiadów JavaScript ze szczegółowymi odpowiedziami dla każdego programisty JavaScript.
Jeśli przygotowujesz się do rozmowy kwalifikacyjnej, oto najczęściej zadawane pytania do wywiadu JS oraz odpowiedzi.
Zaprojektowaliśmy to samo, aby wprowadzić Cię w pytania, które możesz napotkać podczas rozmowy technicznej.
Odkryjmy!!
O JavaScript
JavaScript to język programowania wysokiego poziomu, prawdopodobnie obecnie jeden z najczęściej używanych języków programowania na świecie. Może służyć do programowania przeglądarek internetowych, a nawet serwerów.
Aby zrozumieć znaczenie JavaScript, wyłącz JavaScript w swojej przeglądarce i spróbuj załadować w nim stronę internetową. Te strony internetowe nie będą działać poprawnie. Wiele zawartych w nich treści może się źle zachowywać. Prawie wszystkie nowoczesne przeglądarki wykorzystują kombinację JavaScript, CSS i HTML.
JavaScript jest interpretowanym językiem programowania. Interpreter jest osadzony w przeglądarkach takich jak Google Chrome, Microsoft Internet Explorer, itp. Tak więc jego kod może być obsługiwany przez silnik JavaScript przeglądarki.
JavaScript pojawił się w grudniu 1995 roku i początkowo nosił nazwę LiveScript, chociaż nazwa została wkrótce zmieniona ze względów marketingowych. Nie należy go mylić z językiem „Java”, który również wykazuje pewne podobieństwo, ale jest zupełnie innym językiem.
Najczęściej zadawane pytania do wywiadów JavaScript
Pytanie 1) Co to jest JavaScript?
Odpowiedź: JavaScript to język skryptowy opracowany przez firmę Netscape. Może służyć do programowania przeglądarek internetowych, a nawet serwerów. Potrafi dynamicznie aktualizować zawartość strony internetowej, co jest pięknem tego języka.
P # 2) Jakie są zalety korzystania z zewnętrznego JavaScript?
Odpowiedź: Używanie zewnętrznego JavaScript w naszym kodzie ma wiele zalet.
Są one opisane poniżej.
- Oddzielanie kodu jest wykonywane.
- Konserwacja kodu jest łatwa.
- Wydajność jest lepsza.
P # 3) Czy w poniższym fragmencie kodu możesz przewidzieć wynik lub jeśli pojawi się błąd, wyjaśnij go?
Sample: Software Testing Help
var studentName = 'Sajeesh Sreeni'; // String 'Sajeesh Sreeni' stored in studentName var studentName; // varaible is decalred again document.getElementById('studentName').innerHTML = 'Redeclaring the varaible will not lose the value!.
' +'Here the value in studentName is '+ studentName;
Answ jest r : Ten kod nie spowoduje żadnych błędów. Ponowna deklaracja zmiennych jest dozwolona w JavaScript. W związku z tym wartość zmiennej nie zostanie utracona po wykonaniu instrukcji tutaj.
P # 4) W poniższym fragmencie kodu możesz przewidzieć wynik lub jeśli pojawi się błąd; proszę wyjaśnić błąd?
Sample: Software Testing Help
var sum_first =50+20+' Sajeesh Sreeni '; var sum_second= ' Sajeesh Sreeni '+50+20; document.getElementById('sum_first').innerHTML = 'The first varaible sum is :'+sum_first + '
The second varaible sum is :'+sum_second ;
Odpowiedź: Ten kod nie pokaże żadnych błędów!
Wyjście fragmentu kodu:
Pierwsza zmienna suma to: 70 Sajeesh Sreeni
Druga suma zmienna to: Sajeesh Sreeni 5020
P # 5) Jaka jest różnica między metodami test () i exec ()?
Odpowiedź: Zarówno test (), jak i exec () są metodami wyrażeń RegExp.
.net Framework pytania i odpowiedzi do wywiadów
Korzystając z test () , przeszukamy ciąg dla podanego wzorca, jeśli znajdzie pasujący tekst, zwróci wartość logiczną „prawda” lub zwróci „fałsz”.
Ale w exec () , przeszukamy ciąg dla danego wzorca, jeśli znajdzie pasujący tekst, zwróci sam wzorzec lub zwróci wartość „null”.
P # 6) Jakie są zalety JavaScript?
Odpowiedź: Jak podano poniżej, ten język skryptowy ma wiele zalet.
- Lekki: Jest łatwy do wdrożenia. Ma małe ślady pamięci.
- Zinterpretowany: Jest to język interpretowany. Instrukcje są wykonywane bezpośrednio.
- Zorientowany obiektowo: Jest to język zorientowany obiektowo.
- Funkcje pierwszej klasy: W JavaScript jako wartość można użyć funkcji.
- Język skryptowy: Jest to język, w którym napisane są instrukcje dla środowiska wykonawczego.
P # 7) W poniższym fragmencie kodu możesz przewidzieć wynik lub jeśli pojawi się błąd; proszę wyjaśnić błąd?
Sample: Software Testing Help
Example Const Variable
const first_num; first_num =1000; document.getElementById('display').innerHTML = 'First Number:'+ first_num;
Odpowiedź: Zmienna „const” „first_num” nie jest inicjowana wartością, więc kod zwróci błąd składni.
Wyjście fragmentu kodu:
Error: Uncaught SyntaxError: Brak inicjatora w deklaracji const
P # 8) Czy używałeś jakiejkolwiek przeglądarki do debugowania? Jeśli tak, jak to się robi?
Odpowiedź: Naciskając klawisz „F12” na klawiaturze, możemy włączyć debugowanie w przeglądarce. Wybierz kartę „Konsola”, aby wyświetlić wyniki.
W Console możemy ustawić punkty przerwania i wyświetlić wartość w zmiennych. Wszystkie nowoczesne przeglądarki mają wbudowany debugger (Na przykład: Chrome, Firefox, Opera i Safari ) . Tę funkcję można włączać i wyłączać.
P # 9) Jakie jest zastosowanie słowa kluczowego „debugger” w kodzie JavaScript?
Odpowiedź: Używanie słowa kluczowego „debugger” w kodzie jest podobne do używania punktów przerwania w debugerze.
Aby przetestować kod, debuger musi być włączony dla przeglądarki. Jeśli debugowanie jest wyłączone dla przeglądarki, kod nie będzie działać. Podczas debugowania kodu pozostała część powinna przestać działać, zanim przejdzie do następnego wiersza.
P # 10) Jakie są różne typy wartości nazw błędów?
Odpowiedź: We właściwości „Nazwa błędu” występuje 6 typów wartości.
Błąd | Opis |
---|---|
Błąd zakresu | Otrzymamy ten błąd, jeśli użyjemy liczby spoza zakresu |
Błąd składni | Ten błąd pojawia się, gdy używamy nieprawidłowej składni. (Proszę zapoznać się z pytaniami nr: 7) |
Błąd odniesienia | Ten błąd jest generowany, jeśli używana jest niezadeklarowana zmienna. Proszę zapoznać się z pytaniami nr: 19 |
Błąd oceny | Zgłoszony z powodu błędu w eval (). Nowa wersja JavaScript nie ma tego błędu |
Wpisz błąd | Wartość jest poza zakresem używanych typów. Proszę zapoznać się z pytaniami nr: 22 |
Błąd URI | Z powodu użycia nielegalnych znaków. |
P # 11) Co to jest podnoszenie JavaScript?
Odpowiedź: Podczas korzystania z metody „JavaScript Hoisting”, gdy interpreter uruchamia kod, wszystkie zmienne są przenoszone na początek pierwotnego / bieżącego zakresu. Jeśli masz zmienną zadeklarowaną w dowolnym miejscu w kodzie, zostanie ona przeniesiona na górę.
Ta metoda ma zastosowanie tylko do deklaracji zmiennej i nie ma zastosowania do inicjalizacji zmiennej. Funkcje są również podnoszone do góry, podczas gdy objaśnienia funkcji nie są podnoszone do góry.
Zasadniczo to, gdzie zadeklarowaliśmy zmienną w kodzie, nie ma większego znaczenia.
Pytanie 12) Co to jest „tryb ścisły” JavaScript?
Odpowiedź: „Tryb ścisły” to zastrzeżona odmiana JavaScript. Zwykle ten język jest „niezbyt rygorystyczny” w rzucaniu błędów. Ale w „trybie ścisłym” będzie generować wszystkie rodzaje błędów, nawet ciche błędy. W ten sposób proces debugowania staje się łatwiejszy. A szanse na popełnienie błędu dewelopera są mniejsze.
P # 13) Jakie są cechy „trybu ścisłego” JavaScript?
Odpowiedź: Poniżej podano cechy „trybu ścisłego”:
- „Tryb ścisły” powstrzyma programistów przed tworzeniem zmiennych globalnych.
- Programiści nie mogą używać zduplikowanych parametrów.
- Tryb ścisły ogranicza możliwość używania słowa kluczowego JavaScript jako nazwy zmiennej lub nazwy funkcji.
- Tryb ścisły jest zadeklarowany za pomocą słowa kluczowego „użyj ścisłego” na początku skryptu.
- Wszystkie przeglądarki obsługują tryb ścisły.
P # 14) Co to są funkcje samowywołujące się?
Odpowiedź: Są one również znane jako „natychmiast wywoływane wyrażenia funkcyjne” lub „samowykonujące się funkcje anonimowe”. Te funkcje są wywoływane automatycznie w kodzie, dlatego nazywane są „funkcjami samo wywołującymi”.
Zwykle definiujemy funkcję i wywołujemy ją, ale jeśli chcemy automatycznie wykonać funkcję tam, gdzie jest wyjaśniona, i jeśli nie zamierzamy jej ponownie wywoływać, możemy użyć funkcji anonimowych. Te typy funkcji nie mają nazwy.
P # 15) Jaka jest składnia funkcji „Self Invoking Function”? Daj przykład?
Odpowiedź:
Składnia funkcji Self-Invoking:
(function () { return () } () ;
W tym przypadku ostatni nawias „()” w składni wskazuje, że jest to wyrażenie funkcyjne.
Przykład funkcji wywoływanych przez siebie:
Sample: Software Testing Help
Example for Self-Invoking
(function (){ elem = document.getElementById('dispaly_num'); elem.innerHTML = 'This function has no name.
It is called automatically'; }());
W tym przypadku funkcja anonimowa jest automatycznie wywoływana we fragmencie kodu.
Funkcja służy do ustawiania właściwości text pliku
tag z „display_num” jako Id.
Wyjście fragmentu kodu:
Ta funkcja nie ma nazwy.
Jest wywoływana automatycznie
P # 16) Czy w poniższym fragmencie kodu możesz przewidzieć wynik lub jeśli pojawi się błąd; proszę wyjaśnić błąd?
Odpowiedź:
Sample : Software Testing Help
Example for JavaScript Hoisting
first_num = 100; // Assign value 100 to num elem = document.getElementById('dispaly_num'); elem.innerHTML = ' Here the variable first_num: '+first_num +' is taken to the top
' + 'Since second variable is initialised the value is not taken to the top and it's value is ' + ''+second_num +' “; var first_num; // declaration only var second_num =200; // Initialised the variable
Proszę odnieść się do poprzedniego Q # 11, jak tam wyjaśniono, interpreter przeniesie wszystkie zadeklarowane zmienne z wyjątkiem inicjalizacji na górę.
Zgodnie z tym zmienna „first_num” jest przenoszona na górę, a zmienna „second_num” jest inicjowana wartością, więc nie jest przenoszona na górę. Ten kod nie zgłosi błędu. Ale wartość „second_num” jest niezdefiniowana.
Wyjście fragmentu kodu:
Tutaj zmienna first_num: 100 jest przenoszona na górę
Ponieważ druga zmienna jest inicjalizowana, wartość nie jest przenoszona na górę, a jej wartość jest niezdefiniowana
P # 17) Jeśli chcesz ukryć kod JavaScript przed starszymi wersjami przeglądarek, jak to zrobisz?
Odpowiedź: W kodzie po tagu dodaj „
Nie pozwoli to przeglądarce na wykonanie kodu JavaScript, jeśli była to jego starsza wersja. Ponadto po tagu końcowym dodaj tag HTML „// ->”.
Ta metoda pomoże w pewnym stopniu rozwiązać problemy ze zgodnością i problemy z interfejsem użytkownika.
Sample: Software Testing Help
Tutaj fragment kodu po uruchomieniu tagu w mojej przeglądarce, ponieważ nie używam starszej wersji przeglądarki.
Wyjście fragmentu kodu:
Tutaj nie używam starszej wersji przeglądarki.
Więc kod będzie działał w mojej przeglądarce
P # 18) Czy w poniższym fragmencie kodu możesz przewidzieć wynik lub jeśli pojawi się błąd, wyjaśnij go?
Sample: Software Testing Help
Find the output
var first_num =500; var result= function(){ document.getElementById('display').innerHTML = first_num; var first_num =1000; } result();
Odpowiedź: W powyższym kodzie wartość zmiennej „first_num” nie będzie wynosić 1000.
W JavaScript nie ma żadnego podnoszenia przy inicjalizacji zmiennych. Funkcja „result ()” wybierze zmienną lokalną „first_num”, zgodnie z deklaracją wewnątrz funkcji. Ponieważ zmienna jest zadeklarowana po jej użyciu, wartość „first_num” jest niezdefiniowana.
Wyjście fragmentu kodu:
Nieokreślony
P # 19) Jaka jest różnica między słowami kluczowymi „var” i „let”?
Odpowiedź: Różnice są następujące:
Gdzie | pozwolić |
---|---|
Słowo kluczowe „var” zostało wprowadzone w kodzie JavaScript od samego początku etapu. | Słowo kluczowe „let” zostało wprowadzone dopiero w 2015 roku. |
Słowo kluczowe „Var” ma zakres funkcji. Zmienna zdefiniowana za pomocą var jest dostępna w dowolnym miejscu funkcji | Zmienna zadeklarowana za pomocą słowa kluczowego „let” ma zasięg tylko w tym bloku. Tak więc, mamy zakres blokowy. |
Zmienna zadeklarowana jako „var” zostanie podniesiona | Zmienna zadeklarowana jako „niech” zostanie podniesiona |
P # 20) W poniższym fragmencie kodu możesz przewidzieć wynik lub jeśli pojawi się błąd; proszę wyjaśnić błąd?
Sample: Software Testing Help
Find the output
if(true){ var first_num =1000; let second_num=500; } document.getElementById('display_first').innerHTML = 'First Number:' + first_num; document.getElementById('display_second').innerHTML = 'Second Number:' + second_num;
Odpowiedź:
Wyjście fragmentu kodu:
Pierwszy Numer: 1000
Dostaniemy 'Pierwszy Numer: 1000 ” jako wyjście. Występuje również błąd „Nieprzechwycony błąd odniesienia”.
We fragmencie kodu zakres „second_num” mieści się tylko w bloku if (). Jeśli programista spróbuje uzyskać dostęp do wartości poza blokiem, otrzyma „Błąd nieprzechwyconego odniesienia”.
Błąd nieprzechwyconego odwołania: nie zdefiniowano drugiego_num.
P # 21) Jaka jest różnica między „==” a „===”?
Odpowiedź: Zarówno „==”, jak i „===” to operatory porównania.
Operator „==” | Operator „===” |
---|---|
Jest znany jako „operator konwersji typów” | Jest znany jako „operator ścisłej równości” |
Porównuje wartość, nie porównuje typu | Porównuje zarówno wartość, jak i typ. |
P # 22) Jaka jest różnica między „let” a „const”?
Odpowiedź: Różnice są następujące:
pozwolić | konst |
---|---|
używając „let” możemy dowolną ilość razy zmieniać wartość zmiennej | używając „const”, po pierwszym przypisaniu wartości nie możemy ponownie zdefiniować wartości |
Rozważ kod { niech first_num = 1; pierwszy_num = 2; dokument. write (first_num); } Tutaj kod da wynik, ponieważ zmiana wartości first_num jest możliwa. | Rozważ kod { const second_num = 1; drugi_num = 2; dokument. napisz (drugi_num); } W tym przypadku kod spowoduje błąd, ponieważ „second_num” ma przypisaną drugą wartość. |
P # 23) W poniższym fragmencie kodu możesz przewidzieć wynik lub jeśli pojawi się błąd; proszę wyjaśnić błąd?
Sample: Software Testing Help
Example of 'Const' Keyword
let first_num =500; first_num=501; document.getElementById('display_first').innerHTML = 'First Number:'+ first_num ; const second_num =1000; second_num=1001; document.getElementById('display_second').innerHTML = 'Second Number :'+second_num;
Odpowiedź: Przed dalszą lekturą zapoznaj się z Q # 21
Wyjście fragmentu kodu:
Pierwszy numer: 501
Wystąpi również błąd podczas uruchamiania kodu, ponieważ próbujemy zmienić wartość zmiennej „const”.
Błąd: Uncaught TypeError: przypisanie do stałej zmiennej.
P # 24) Jaka jest różnica między „null” a „undefined”?
Odpowiedź: Oba słowa kluczowe reprezentują puste wartości .
Różnice są następujące:
- W „undefined” zdefiniujemy zmienną, ale nie przypiszemy jej wartości. Z drugiej strony w „null” zdefiniujemy zmienną i przypiszemy do niej wartość „null”.
- typ (undefined) i typ (null) obiektu.
P # 25) Jaka jest różnica między „deklaracją funkcji” a „wyrażeniem funkcji”?
Odpowiedź: Można to wyjaśnić na przykładzie:
Sample: Software Testing Help
Example Function Declaration
function add(first_num,second_num){ return first_num + second_num; } var substract = function sub(first_num,second_num){ return first_num - second_num; } var first_num=700; var second_num=300; document.getElementById('display_add').innerHTML = 'Sum of the number is:' + add(first_num,second_num); document.getElementById('display_sub').innerHTML = 'Difference of the number is:' + substract(first_num,second_num);
Jak pokazano w przykładzie add () to deklaracja funkcji, a subtract () to wyrażenie funkcji. Składnia deklaracji funkcji jest podobna do funkcji, która jest zapisywana w zmiennej.
Deklaracje funkcji są podnoszone, ale wyrażenia funkcji nie są podnoszone.
P # 26) Co to jest „settimeout ()”?
Odpowiedź: Lepiej będzie to wyjaśnić na przykładzie.
Rozważ fragment kodu
Console.log (‘First Line’); Console.log (‘Second Line’); Console.log (‘Third Line’);
Wyjście fragmentu kodu:
Pierwsza linia
Druga linia
Trzecia linia
Teraz wprowadzasz metodę settimeout () i pakujesz w nią ten sam zestaw kodu.
Settimeout(function() { Console.log (‘First Line’); },0); Console.log (‘Second Line’); Console.log (‘Third Line’);
Wyjście fragmentu kodu:
Druga linia
Trzecia linia
Pierwsza linia
Wraz z wprowadzeniem settimeout () procesy stają się asynchroniczne. Pierwsze instrukcje, które mają zostać umieszczone na stosie, to Console.log („Druga linia”) i Console.log („Trzecia linia”). Zostaną one wykonane jako pierwsze. Musisz poczekać, aż wszystko w stosie zostanie ukończone jako pierwsze.
Mimo że „0” to limit czasu, nie oznacza to, że zostanie wykonany od razu.
P # 27) Co to jest zamknięcie i jak go używasz?
Odpowiedź: Zamknięcie jest funkcją wewnętrzną. Może uzyskać dostęp do zewnętrznych zmiennych funkcji. W Closure, wewnątrz function_1 jest inna funkcja_2, która zwraca wartość „A”, a funkcja_1 również zwraca wartość; powiedz „B”.
W tym przypadku sum () jest funkcją zewnętrzną, a add () funkcją wewnętrzną, która ma dostęp do wszystkich zmiennych, w tym „first_num”, „second_num” i „third_num”. Funkcja zewnętrzna wywołuje funkcję wewnętrzną add ().
// To find the sum of two numbers using closure method function sum( first_num, second_num ) { var sumStr= 600; function add(first_num , second_num) { return (sumStr + (first_num + second_num)); } return add(); } document.write('Result is :'+ sum(150,350));
Wyjście fragmentu kodu:
Wynik to: 500
Q # 28) W poniższym fragmencie kodu możesz przewidzieć wynik lub jeśli pojawi się błąd; proszę wyjaśnić błąd?
Sample: Software Testing Help
Example Assignmnet Statement
var x =500; let y,z,p,q; q=200; if(true){ x=y=z=p=q; document.getElementById('display').innerHTML = 'x='+ x + '
y :'+ y +'
z :'+ z+'
p :'+ p+'
q :'+ q; }
Odpowiedź: Instrukcje przypisania są rozpatrywane od prawej do lewej.
Wyjście fragmentu kodu:
x = 200
i: 200
z:200
p: 200
q: 200
P # 29) Czy możesz podać przykład, w którym fragment kodu pokazuje różnicę między metodami test () i exec ()?
Sample : Software Testing Help
Example for exec() methods
Click the button to search for a pattern 'How“ in the given string 'Hello. Good Morning. How do you feel today?'
If the 'How' is found, the method will return the pattern
Search function searchTxt() { var str = 'Hello. Good Morning. How do you feel today?'; var search_patt = new RegExp('How'); var res = search_patt.exec(str); document.getElementById('result').innerHTML ='Found the pattern :'+ res; }
Odpowiedź: To jest przykład metody test () i exec (). Aby uzyskać więcej informacji, zapoznaj się z pytaniami nr: 5.
Wyjście fragmentu kodu:
Znaleziono wzorzec za pomocą exec (): Jak
Za pomocą testu () wynik jest: true
P # 30) Czy możesz podać przykład pokazujący podnoszenie JavaScript?
Odpowiedź:
Sample: Software Testing Help
Example for JavaScript Hoisting
num = 100; // Assign value 100 to num elem = document.getElementById('dispaly_num'); elem.innerHTML = 'Here the variables are used before declaring it.' + '
The value of the variable is ' + num; var num; // Declare the varaible
Więcej informacji można znaleźć w Q # 11.
Tutaj zmienna „num” jest używana przed jej zadeklarowaniem. Ale JavaScript Hoisting na to pozwoli.
Wyjście fragmentu kodu:
Tutaj zmienne są używane przed zadeklarowaniem.
Wartość zmiennej to 100
P # 31) Czy możesz podać przykład pokazujący użycie słowa kluczowego „debugger” w kodzie JavaScript?
Odpowiedź:
Sample: Software Testing Help
Example for debug keyword
Here to test the code, debugger must be enabled for the browser,
during debugging the code below should stop executing before it goes to the next line.
var a = 1000; var b = 500; var sum = a + b; document.getElementById('wait_result').innerHTML = 'Adding numbers......
Select 'Resume Script execution' to continue: '; debugger; document.getElementById('show_result').innerHTML = 'Sum of the numbers : '+sum;
Uwaga: Aby przeglądarka mogła przetestować kod, musi być włączony debuger. Więcej informacji można znaleźć w pytaniach nr: 5
To jest przykład słowa kluczowego do debugowania (używana przeglądarka: Chrome)
Wyjście fragmentu kodu:
Tutaj, aby przetestować kod, debugger musi być włączony dla przeglądarki,
podczas debugowania poniższy kod powinien przestać się wykonywać, zanim przejdzie do następnego wiersza.
Dodawanie numerów…
Wybierz „Wznów wykonywanie skryptu”, aby kontynuować:
Suma liczb: 1500
Q # 32) W poniższym fragmencie kodu możesz przewidzieć wynik lub jeśli pojawi się błąd; proszę wyjaśnić błąd?
Sample: Software Testing Help
Example Type Converting
sql zapytanie praktyczne pytania odpowiedzi pdf
var first_num =500; var first_name='500'; if(first_num == first_name){ document.getElementById('display').innerHTML = 'Comparison will return 'true' by Type converting Operator '; }
Odpowiedź: Rozważ kod
If (‘100’==100) { document. write (“It’s a Type Converting Operator”); } Here typeof(‘100’) is string typeof(100) is number the ‘==’ operator will convert the number type, which is on the right side of the operator to string and compare both values
Wyjście fragmentu kodu:
Porównanie zwróci wartość „prawda” według operatora konwersji typu
Pytanie # 33) Czy Java i JavaScript są podobne? Jeśli nie, to jaka jest różnica między Javą a JavaScriptem?
Odpowiedź:
Sl No | Jawa | JavaScript |
---|---|---|
jeden | Java to język programowania ogólnego przeznaczenia. | JavaScript to interpretowany język skryptowy wysokiego poziomu. |
dwa | Java jest oparta na koncepcjach programowania obiektowego (OOPS). | JavaScript jest zarówno skryptem obiektowym, jak i funkcjonalnym. |
3 | Działa na wirtualnej maszynie języka Java (JVM) lub w przeglądarce. | Działa tylko w przeglądarce. |
4 | Kod Java musi zostać skompilowany jako plik klasy Java. | JavaScript nie ma kroku kompilacji. Zamiast tego interpreter w przeglądarce czyta kod JavaScript, interpretuje każdy wiersz i uruchamia go. |
Krótko mówiąc, języki te w ogóle nie są ze sobą powiązane ani od siebie zależne.
P # 34) Jakie typy danych są obsługiwane przez JavaScript?
Odpowiedź: JavaScript obsługuje następujące Siedem prymitywy typy danych i Obiekt :
(i) Boolean: Jest to logiczny typ danych, który może mieć tylko dwie wartości, tj. Prawda lub fałsz. Kiedy sprawdzamy typ danych „prawda” lub „fałsz” za pomocą operatora typeof, zwraca on wartość logiczną.
Na przykład, typeof (true) // zwraca wartość logiczną
Do porównania dwóch zmiennych można użyć wartości logicznych.
Na przykład,
var x = 2; var y = 3; x==y //returns false
Wartość logiczna może również służyć do sprawdzania warunku
Na przykład,
var x = 2; var y = 3; If(xJeśli powyższy warunek „x Zmienną boolowską można utworzyć za pomocą funkcji Boolean ().
var myvar = ‘Hi'; Boolean(myvar); // This returns true because the 'myvar' value exists
Ponadto obiekt Boolean można utworzyć za pomocą operatora new w następujący sposób:
var myobj = new Boolean(true);
(Ii) Brak :Jest to typ danych reprezentowany tylko przez jedną wartość, samą wartość „null”. Wartość pusta oznacza brak wartości.
Na przykład,
var x = null; console.log(x);// This returns null
Jeśli sprawdzimy typ danych a za pomocą operatora typeof, otrzymamy:
typeof(x); // This returns object. type of a null value is an object, not null.
(iii) Niezdefiniowany: Ten typ danych oznacza zmienną, która nie jest zdefiniowana. Zmienna jest zadeklarowana, ale nie zawiera żadnej wartości.
Na przykład,
var x; console.log(x); // This returns undefined x=10;//Assign value to x console.log(x); // This returns 10
Zmienna „a” została zadeklarowana, ale nie została jeszcze przypisana wartość.
Możemy przypisać wartość do:
(iv) Liczba: Ten typ danych może być wartością zmiennoprzecinkową, liczbą całkowitą, wartością wykładniczą, „NaN” lub „Nieskończonością”.
Na przykład,
var x=10; // This is an integer value var y=10.5; // decimal value var c = 10e5 // an exponential value ‘xyz’ * 10; //This returns NaN 10/0; // This returns infinity
Literał liczbowy można utworzyć za pomocą funkcji Number ():
var x = Number(10); console.log(x);// This returns 10
Ponadto obiekt liczby można utworzyć za pomocą operatora „new” w następujący sposób:
var x= new Number(10); console.log(x); // This returns 10
(v) BigInt: Jest to numeryczny prymityw, który może przedstawiać liczby całkowite z dowolną precyzją. BigInt jest tworzony przez dodanie n na końcu liczby całkowitej
Na przykład,
const x = 15n;
Liczbę można przekonwertować na BigInt za pomocą funkcji BigInt (number).
const x = 251; const y = BigInt(x); y === 251n // returns true
(vi) Ciąg: Ten typ danych jest używany do reprezentowania danych tekstowych.
Na przykład,
var strVar1 = “Hi,how are you?”; var strVar2 = ‘Hi,how are you?’;
Nowy ciąg można również utworzyć za pomocą funkcji String () w następujący sposób:
var strVar3 = String(‘Hi,how are you?’); // This creates a string literal with value ‘Hi,how are you?’
Funkcja String () jest również używana do konwersji wartości niebędącej ciągiem znaków na ciąg.
String(150); // This statement will create a string ‘150’
Ciąg można również utworzyć za pomocą 'Nowy' operator
var strVar4 = new String(“Hi,how are you?”); // This is a string object console.log(strVar4); // This will return the string ‘Hi,how are you?’
Ciągi JavaScript są niezmienne, tj. Po utworzeniu ciągu nie można go modyfikować. Ale inny ciąg można utworzyć za pomocą operacji na oryginalnym ciągu.
Na przykład,
- Łącząc dwa ciągi za pomocą operatora konkatenacji (+) lub String.concat () .
- Pobierając podciąg przy użyciu String.substr () .
(vii) Symbol: Jest to unikatowa i niezmienna wartość pierwotna używana jako klucz właściwości Object. Symbole są nowością w JavaScript w ECMAScript 2015
DO Symbol wartość reprezentuje unikalny identyfikator.
Na przykład,
var symVar1 = Symbol('Symbol1'); let symVar2 = Symbol('Symbol1'); console.log(symVar1 === symVar2); // This returns 'false'.
Tak więc wiele symboli jest tworzonych z tym samym opisem, ale z różnymi wartościami.
Symbole nie mogą być konwertowane automatycznie.
Na przykład,
var symVar1 = Symbol('Symbol1'); alert(symVar1); // This gives TypeError: Cannot convert a Symbol value to a string
Można to przepracować za pomocą toString () w następujący sposób:
alert(symVar1.toString()); // Symbol(symVar1), this works
Typ danych obiektu
Obiekt to wartość w pamięci, do której odwołuje się identyfikator.
Obiekt odnosi się do struktury danych zawierającej dane i instrukcje do pracy z danymi. Przedmioty czasami odnoszą się do rzeczy z rzeczywistego świata, Na przykład, pracownik lub samochód.
Na przykład,
W obiektach JavaScript wartości są zapisywane jako nazwa: wartość pary jak poniżej:
var car1 = {type:'BMW', model:” The BMW X5“, color:'white'}; An object definition can span multiple lines as follows: var car1 = { type:'BMW', model: 'The BMW X5', color:'white' };
Plik nazwa: wartości nazywane są pary nieruchomości . Na przykład, „Typ” to własność, a „BMW” to wartość nieruchomości.
Dostęp do wartości właściwości uzyskuje się za pomocą objectName.propertyName
lub objectName („propertyName”)
Na przykład, car1.type lub car1 („type”), zwraca „BMW”
Wartość obiektu car1 można zmienić w następujący sposób:
car1.type = “Audi”;
Teraz,
console.log(car1) ;//This will return {type:'Audi', model:” The BMW X5“ , color:'white'};
P # 35) Czy JavaScript jest językiem uwzględniającym wielkość liter?
Odpowiedź: Tak, w JavaScript rozróżniana jest wielkość liter. Znaczenie tego to słowa kluczowe języka, zmienne, nazwy funkcji i wszelkie inne identyfikatory, które zawsze muszą być wpisywane spójnymi dużymi lub małymi literami.
Na przykład, myVar jest inną zmienną niż myvar.
P # 36) Jak określić, do jakiego typu danych należy operand?
Odpowiedź: Typ danych operandu można znaleźć za pomocą operatora typeof
Zwraca łańcuch wskazujący typ operandu.
Składnia : typ operandu
typeof (operand)
Operand może być dowolną zmienną, obiektem lub funkcją.
Na przykład,
console.log (typeof 10);// expected output: 'number' console.log (typeof 'hello');// expected output: 'string' console.log (typeof);//expected output: //'undefined';
P # 37) Dlaczego JavaScript jest nazywany językiem luźnym lub dynamicznym?
Odpowiedź: JavaScript jest nazywany językiem luźnym lub dynamicznym, ponieważ zmienne JavaScript nie są bezpośrednio powiązane z żadnym typem wartości, a każdej zmiennej można przypisać i ponownie przypisać wartości wszystkich typów:
Na przykład,
var myvar = ‘abc’; // myvar is string myvar =true; // myvar is now a boolean myvar = 10; // myvar is now a number
P # 38) Co jest null w JavaScript?
Odpowiedź: Wartość null reprezentuje celowy brak wartości obiektu.
To jedna z prymitywnych wartości JavaScript.
Na przykład,
Var myvar = null; console.log(myvar); //This will print null
P # 39) Co to jest NaN?
Odpowiedź: NaN jest właściwością obiektu globalnego reprezentującego Not-A-Number.
Na przykład,
function checkValue(x) { if (isNaN(x)) { return NaN; } return x; } console.log(checkValue ('5')); //expected output: '5' console.log(checkValue (‘Any value’)); //expected output: NaN
Q # 40) Jak podzielić ciąg na elementy tablicy?
Odpowiedź: Ciąg można podzielić na tablicę za pomocą metody split () JavaScript. Ta metoda przyjmuje pojedynczy parametr, znak, w którym chcesz oddzielić ciąg, i zwraca podciągi między separatorem jako elementy w tablicy.
Na przykład,
myDaysString = ''Sunday,Monday,Tuesday,Wednesday”; String can be split at comma as below: myDaysArray= myDaysString.split(','); console.log(myDaysArray(0)); //output is the first item in the array i.e. Sunday console.log (myDaysArray(myDaysArray.length-1)); //output is the last //item in the array i.e. Wednesday
P # 41) Jak połączyć elementy tablicy w łańcuch?
Odpowiedź: Elementy tablicy można łączyć za pomocą metody join ().
Na przykład,
var myDaysArray= ('Sunday','Monday','Tuesday',”Wednesday”);
Elementy tablicy są łączone w ciąg w następujący sposób:
myDaysString= myDaysArray.join(','); console.log(myDaysString);//output is joined string i.e.//Sunday,Monday,Tuesday,Wednesday
P # 42) Jakie typy błędów ma JavaScript?
Odpowiedź: Poniżej przedstawiono 2 rodzaje błędów:
- Błędy składniowe: Są to literówki lub błędy w pisowni w kodzie, które powodują, że program w ogóle nie działa lub przestaje działać w trakcie. Zwykle wyświetlane są również komunikaty o błędach.
- Błędy logiczne: Są to błędy, gdy składnia jest poprawna, ale logika lub kod są niedokładne. Tutaj program działa pomyślnie bez błędów. Ale wyniki wyjściowe są nieprawidłowe. Są one często trudniejsze do naprawienia niż błędy składniowe, ponieważ programy te nie wyświetlają żadnych komunikatów o błędach logicznych.
Q # 43) Jak radzić sobie z dużą liczbą wyborów dla jednego stanu w skuteczny sposób?
Odpowiedź: Odbywa się to za pomocą instrukcji switch:
Na przykład,
switch (expression) { case choice1: code to be run break; case choice2: code to be run break; : : default: code to run if there is no case match }
Q # 44) Co to jest operator trójskładnikowy?
Odpowiedź: Operator trójargumentowy lub warunkowy to operator używany do szybkiego wyboru między dwiema opcjami na podstawie testu prawdziwości lub fałszu.
Można go użyć jako substytutu bloku if… else, gdy istnieją dwie możliwości wyboru między warunkiem prawda / fałsz.
Na przykład,
if (some condition) result = ‘result 1’; else result = ‘result 2’;
Ten sam kod można zapisać przy użyciu operatora trójargumentowego w jednej instrukcji w następujący sposób:
wynik = (warunek)? „wynik 1”: „wynik 2”;
Q # 45) Załóżmy, że istnieje obiekt zwany osobą
const person = {
Nazwa : {
pierwszy: „Bob”,
ostatnia: „Smith”
}
};
Który z poniższych sposobów jest prawidłowym sposobem uzyskiwania dostępu do właściwości obiektu „pierwszy”?
- person.name.first,lub
- osoba („imię”) („pierwsza”)?
Odpowiedź: Obie są prawidłowe. tj. używając kropek, takich jak person.name.first, lub używając notacji w nawiasach, jak osoba („imię”) („pierwsza”)
P # 46) Co to jest „to”?
Odpowiedź: Słowo kluczowe „this” odnosi się do bieżącego obiektu, w którym jest zapisywany kod.
Ma to na celu zapewnienie, że w przypadku zmiany kontekstu elementu zostaną użyte prawidłowe wartości
Na przykład, istnieją dwa różne przypadki osoba mają różne nazwy i należy wydrukować własne imię i nazwisko w alercie w następujący sposób:
const person1 = { name: 'Tom', greeting: function() { alert('Good Morning! I am ' + this.name + '.'); } }
Tutaj wynik jest Dzień dobry! Jestem Tom'
const person2 = { name: 'Jerry', greeting: function() { alert('Good Morning! I am ' + this.name + '.'); } }
Tutaj wynik jest Dzień dobry! Jestem „Jerry”
Q # 47) Co to są funkcje anonimowe?
Odpowiedź: Funkcje anonimowe to funkcje, które nie mają nazwy i same nie działają. Są one zwykle używane wraz z programem obsługi zdarzeń.
Na przykład, w poniższym kodzie anonimowy kod funkcji, tj. alert („Hi”); uruchamia się po kliknięciu odpowiedniego przycisku:
var myButton = document.querySelector('button'); myButton.onclick = function() { alert('Hi'); }
Funkcja anonimowa może być również przypisana do wartości zmiennej.
Na przykład,
var myVar = function() { alert('Hi'); }
Tę funkcję można wywołać za pomocą:
myVar();
Wniosek
Lepiej jest przechowywać kody JavaScript, CSS i HTML jako oddzielne zewnętrzne pliki „js”. Oddzielenie części kodującej i części HTML ułatwi ich czytanie i pracę z nimi. Wielu programistów uważa również, że ta metoda jest łatwiejsza do jednoczesnej pracy.
Kod JavaScript jest łatwy w utrzymaniu. Ten sam zestaw kodów JavaScript może być używany na wielu stronach. Jeśli korzystamy z zewnętrznych kodów JavaScript i jeśli musimy zmienić kod, to musimy to zmienić w jednym miejscu. Abyśmy mogli ponownie wykorzystać kod i utrzymywać go w znacznie łatwiejszy sposób.
Sugerowana lektura = >> TypeScript vs JavaScript
Kod JavaScript ma lepszą wydajność. Zewnętrzne pliki JavaScript przyspieszą ładowanie strony, ponieważ będą zapisywane w pamięci podręcznej przeglądarki.
Mam nadzieję, że pytania i odpowiedzi JavaScript do wywiadu okazały się pomocne. Przećwicz jak najwięcej pytań i bądź pewny siebie.
rekomendowane lektury
- Pytania i odpowiedzi do wywiadu
- 32 najlepsze pytania i odpowiedzi do wywiadów z danymi
- ETL Pytania i odpowiedzi podczas rozmowy kwalifikacyjnej testującej
- Ponad 20 pytań i odpowiedzi do wywiadów .NET
- Niektóre trudne pytania i odpowiedzi do testowania ręcznego
- 25 najlepszych pytań i odpowiedzi na rozmowę z testami zwinnymi
- Pytania do wywiadu Spocka z odpowiedziami (najpopularniejsze)
- Kilka interesujących pytań do rozmowy kwalifikacyjnej dotyczącej testowania oprogramowania