top 45 javascript interview questions with detailed answers
Cele mai frecvente întrebări de bază și avansate despre interviuri JavaScript cu răspunsuri detaliate pentru fiecare dezvoltator JavaScript.
Dacă vă pregătiți pentru un interviu, iată cele mai frecvente întrebări și răspunsuri la interviu JS pentru referință.
Am conceput același lucru pentru a vă prezenta cunoștințele pe care probabil le veți întâlni în timpul interviului tehnic.
Să explorăm !!
Despre JavaScript
JavaScript este un limbaj de programare la nivel înalt, probabil unul dintre cele mai utilizate limbaje de programare din lume în acest moment. Poate fi folosit pentru a programa browsere web sau chiar servere.
Pentru a înțelege importanța JavaScript-ului, dezactivați JavaScript în browserul dvs. și încercați să încărcați pagina web în acesta. Aceste pagini web nu vor funcționa corect. Multe conținuturi din ele se pot comporta greșit. Aproape toate browserele moderne folosesc combinația de JavaScript, CSS și HTML.
JavaScript este un limbaj de programare interpretat. Un interpret este încorporat în browsere precum Google Chrome, Microsoft Internet Explorer etc. Deci, codul său poate fi gestionat de motorul JavaScript al browserului.
JavaScript a apărut în decembrie 1995 și a fost numit inițial LiveScript, deși numele a fost schimbat în curând din motive de marketing. Nu trebuie confundat cu „Java”, care are, de asemenea, o oarecare asemănare, dar este un limbaj complet diferit.
Cele mai frecvente întrebări de interviu JavaScript
Q # 1) Ce este JavaScript?
Răspuns: JavaScript este un limbaj de scriptare dezvoltat de Netscape. Poate fi folosit pentru a programa browsere web sau chiar servere. Poate actualiza dinamic conținutul paginii web, care este frumusețea acestei limbi.
Q # 2) Care sunt avantajele utilizării JavaScript-ului extern?
Răspuns: Folosirea JavaScript-ului extern în codul nostru are multe avantaje.
Acestea sunt enumerate mai jos.
- Separarea codului se face.
- Mentenabilitatea codului este ușoară.
- Performanța este mai bună.
Î. # 3) În următorul fragment de cod, puteți prevedea ieșirea sau Dacă primiți o eroare, vă rugăm să explicați eroarea?
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;
Răspunde este r : Acest cod nu va produce erori. Redeclararea variabilelor este permisă în JavaScript. Prin urmare, valoarea variabilei nu se va pierde după executarea declarației de aici.
Q # 4) În următorul fragment de cod puteți prevedea ieșirea sau Dacă primiți o eroare; vă rog să explicați eroarea?
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 ;
Răspuns: Acest cod nu va afișa nicio eroare!
cum se deschide un fișier torentat
Ieșirea fragmentului de cod:
Prima sumă variabilă este: 70 Sajeesh Sreeni
A doua sumă variabilă este: Sajeesh Sreeni 5020
Q # 5) Care este diferența dintre metodele test () și exec ()?
Răspuns: Atât test (), cât și exec () sunt metode de expresie RegExp.
Prin utilizarea unui Test () , vom căuta un șir pentru un model dat, dacă găsește textul care se potrivește, atunci returnează valoarea booleană „adevărat” sau altfel returnează „fals”.
Dar în exec () , vom căuta un șir pentru un model dat, dacă găsește textul care se potrivește, atunci returnează modelul în sine sau altfel returnează valoarea „nulă”.
Q # 6) Care sunt avantajele JavaScript?
Răspuns: Acest limbaj de scriptare are multe avantaje, după cum se menționează mai jos.
- Ușoare: Este ușor de implementat. Are mici urme de memorie.
- Interpretat: Este un limbaj interpretat. Instrucțiunile sunt executate direct.
- Orientat pe obiecte: Este un limbaj orientat obiect.
- Funcții de primă clasă: În JavaScript, o funcție poate fi utilizată ca valoare.
- Limbaj de scriptare: Este un limbaj în care instrucțiunile sunt scrise pentru un mediu de execuție.
Q # 7) În următorul fragment de cod puteți prevedea ieșirea sau Dacă primiți o eroare; vă rog să explicați eroarea?
Sample: Software Testing Help
Example Const Variable
const first_num; first_num =1000; document.getElementById('display').innerHTML = 'First Number:'+ first_num;
Răspuns: Variabila „const” „first_num” nu este inițializată cu o valoare, astfel încât codul va produce o eroare de sintaxă.
Ieșirea fragmentului de cod:
Eroare: Uncaught SyntaxError: lipsă inițializatorul în declarația const
Q # 8) Ați folosit vreun browser pentru depanare? Dacă da, cum se face?
Răspuns: Prin apăsarea tastei „F12” din tastatură putem activa depanarea în browser. Alegeți fila „Consolă” pentru a vizualiza rezultatele.
În Consolă, putem seta puncte de întrerupere și vizualiza valoarea în variabile. Toate browserele moderne au un debugger încorporat (De exemplu: Chrome, Firefox, Opera și Safari ) . Această caracteristică poate fi activată și dezactivată.
Q # 9) La ce folosește cuvântul cheie „debugger” în codul JavaScript?
Răspuns: Folosirea cuvântului cheie „debugger” în cod este ca și utilizarea punctelor de întrerupere în debugger.
Pentru a testa codul, depanatorul trebuie activat pentru browser. Dacă depanarea este dezactivată pentru browser, codul nu va funcționa. În timpul depanării codului, partea rămasă ar trebui să înceteze executarea, înainte de a trece la linia următoare.
Q # 10) Care sunt tipurile distincte de valori ale numelui de eroare?
Răspuns: Există 6 tipuri de valori în proprietatea „Numele erorii”.
Eroare | Descriere |
---|---|
Eroare de interval | Vom primi această eroare dacă vom folosi un număr în afara intervalului |
Eroare de sintaxă | Această eroare crește atunci când utilizăm sintaxa incorectă. (Vă rugăm să consultați întrebările nr. 7) |
Eroare de referință | Această eroare este aruncată dacă se utilizează o variabilă nedeclarată Vă rugăm să consultați întrebările nr. 19 |
Eroare de evaluare | Aruncat din cauza erorii în eval (). Noua versiune JavaScript nu are această eroare |
Eroare de scris | Valoarea este în afara gamei de tipuri utilizate. Vă rugăm să consultați întrebarea nr. 22 |
Eroare URI | Datorită utilizării de caractere ilegale. |
Q # 11) Ce este JavaScript de ridicare?
Răspuns: În timp ce utilizați metoda „JavaScript Hoisting”, atunci când un interpret execută codul, toate variabilele sunt ridicate în partea de sus a domeniului original / curent. Dacă aveți o variabilă declarată oriunde în interiorul codului, atunci aceasta este adusă în partea de sus.
Această metodă se aplică numai declarației unei variabile și nu se aplică pentru inițializarea unei variabile. Funcțiile sunt, de asemenea, ridicate în partea de sus, în timp ce explicațiile funcției nu sunt ridicate în partea de sus.
Practic, acolo unde am declarat variabila din interiorul codului nu contează prea mult.
Q # 12) Ce este JavaScript „Mod strict”?
Răspuns: „Modul strict” este o variantă restricționată a JavaScript. De obicei, acest limbaj este „nu foarte strict” în erorile de aruncare. Dar în „Modul strict” va arunca toate tipurile de erori, chiar și erorile silențioase. Astfel, procesul de depanare devine mai ușor. Și șansele de a face o greșeală pentru dezvoltator sunt reduse.
Q # 13) Care sunt caracteristicile JavaScript „Mod strict”?
Răspuns: Date mai jos sunt caracteristicile „Modului strict”:
- „Modul strict” îi va opri pe dezvoltatori să creeze variabile globale.
- Dezvoltatorilor li se interzice utilizarea parametrilor duplicat.
- Modul strict vă va restricționa să utilizați cuvântul cheie JavaScript ca nume de variabilă sau nume de funcție.
- Modul strict este declarat cu cuvântul cheie „utilizați strict” la începutul scriptului.
- Toate browserele acceptă modul strict.
Q # 14) Ce sunt funcțiile de autoinvocare?
Răspuns: Acestea sunt, de asemenea, cunoscute sub numele de „Expresii de funcții invocate imediat” sau „Funcții anonime care se execută de sine”. Aceste funcții sunt invocate automat în cod, prin urmare sunt denumite „Funcții de autoinvocare”.
De obicei, definim o funcție și o invocăm, dar dacă vrem să executăm automat o funcție acolo unde este explicată și dacă nu o vom mai apela, putem folosi funcții anonime. Și aceste tipuri de funcții nu au nume.
Q # 15) Care este sintaxa „Funcției de autoinvocare”? Dă un exemplu?
Răspuns:
Sintaxa pentru funcția Auto-Invocare:
(function () { return () } () ;
Aici, ultima paranteză „()” din sintaxă afirmă că este o expresie funcțională.
Exemplu de funcții invocate de sine:
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'; }());
Aici, funcția anonimă este invocată automat în fragmentul de cod.
Funcția este utilizată pentru a seta proprietatea text a fișierului
etichetă având „display_num” ca Id.
Ieșirea fragmentului de cod:
Această funcție nu are nume.
Se apelează automat
Q # 16) În următorul fragment de cod, puteți prevedea ieșirea sau Dacă primiți o eroare; vă rog să explicați eroarea?
Răspuns:
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
Vă rugăm să consultați Q # 11 anterior, așa cum a fost explicat acolo, interpretul va duce toate variabilele declarate cu excepția inițializării în partea de sus.
În conformitate cu aceasta, variabila „first_num” este dusă în partea de sus și variabila „second_num” este inițializată cu o valoare, deci nu este dusă în partea de sus. Acest cod nu va genera o eroare. Dar valoarea „second_num” este nedefinită.
Ieșirea fragmentului de cod:
Aici variabila first_num: 100 este dusă în partea de sus
Deoarece cea de-a doua variabilă este inițializată, valoarea nu este dusă în partea de sus și valoarea acesteia este nedefinită
Q # 17) Dacă trebuie să ascundeți codul JavaScript de la versiunile mai vechi ale browserului, cum îl veți efectua?
Răspuns: În Cod, după etichetă, adăugați „
Acest lucru nu va permite browserului să execute codul JavaScript dacă era o versiune mai veche a acestuia. De asemenea, după eticheta finală adăugați eticheta HTML „// ->”.
Această metodă vă va ajuta să rezolvați într-o anumită măsură problemele de compatibilitate și problemele UI.
Sample: Software Testing Help
Aici, fragmentul de cod după o etichetă este executat în browserul meu, deoarece nu folosesc o versiune mai veche a browserului.
Ieșirea fragmentului de cod:
Aici nu folosesc o versiune mai veche a browserului.
Deci, codul va funcționa în browserul meu
Q # 18) În următorul fragment de cod, puteți prevedea ieșirea sau Dacă primiți o eroare, vă rugăm să explicați eroarea?
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();
Răspuns: Aici, în codul dat mai sus, valoarea variabilei „first_num” nu va fi 1000.
În JavaScript, nu există ridicare pentru inițializarea variabilă. Funcția „result ()” va alege variabila locală „first_num”, așa cum este declarată în interiorul funcției. Deoarece variabila este declarată după ce este utilizată, valoarea „first_num” este nedefinită.
Ieșirea fragmentului de cod:
Nedefinit
Q # 19) Care este diferența dintre cuvântul cheie „var” și „let”?
Răspuns: Diferențele sunt după cum urmează:
Unde | lăsa |
---|---|
Cuvântul cheie „var” a fost introdus în codul JavaScript încă de la începutul etapei. | Cuvântul cheie „let” este introdus numai în 2015. |
Cuvântul cheie „Var” are sfera funcției. Variabila definită cu var este disponibilă oriunde în cadrul funcției | O variabilă declarată cu cuvântul cheie „let” are un domeniu de aplicare numai cu în acel bloc. Deci, let are un scop de blocare. |
Variabila declarată cu „var” trebuie ridicată | Variabila declarată cu „lăsați” să fie ridicată |
Q # 20) În următorul fragment de cod puteți prevedea ieșirea sau Dacă primiți o eroare; vă rog să explicați eroarea?
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;
Răspuns:
Ieșirea fragmentului de cod:
Primul Număr : 1000
Vom primi 'Primul Număr : 1000 ' ca ieșire. Există, de asemenea, o eroare „Uncaught Reference Error”.
În fragmentul de cod, scopul „second_num” se află numai în blocul if (). Dacă un dezvoltator încearcă să acceseze valoarea din afara blocului, va primi o „Eroare de referință neacoperită”.
Eroare de referință neacoperită: second_num nu este definit.
Q # 21) Care este diferența dintre „==” și „===”?
Răspuns: Atât „==”, cât și „===” sunt operatori de comparație.
Operator ‘==’ | Operator „===” |
---|---|
Este cunoscut sub numele de „Operator de conversie de tip” | Este cunoscut ca „Operator de egalitate strict” |
Se compară valoarea, nu se compară tipul | Compară atât valoarea, cât și tipul. |
Q # 22) Care este diferența dintre „let” și „const”?
Răspuns: Diferențele sunt după cum urmează:
lăsa | const |
---|---|
folosind „let” putem schimba valoarea variabilei de câte ori | folosind „const”, după prima atribuire a valorii nu putem redefini valoarea din nou |
Luați în considerare codul { lasa primul_numar = 1; first_num = 2; document. scrie (primul_numru); } Aici codul va da o ieșire, deoarece este posibilă schimbarea valorii first_num. | Luați în considerare codul { const second_num =1; al doilea număr = 2; document. scrie (numărul_al doilea); } Aici codul va produce o eroare, deoarece „second_num” este atribuit cu o a doua valoare. |
Q # 23) În următorul fragment de cod puteți prevedea ieșirea sau Dacă primiți o eroare; vă rog să explicați eroarea?
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;
Răspuns: Vă rugăm să consultați Q # 21 înainte de a citi mai departe
Ieșirea fragmentului de cod:
Primul număr: 501
De asemenea, vom primi o eroare în timp ce rulăm codul, deoarece încercăm să schimbăm valoarea unei variabile „const”.
Eroare: Uncaught TypeError: Alocarea variabilei constante.
Q # 24) Care este diferența dintre „nul” și „nedefinit”?
Răspuns: Ambele cuvinte cheie reprezintă valori goale .
Diferențele sunt:
- În „nedefinit”, vom defini o variabilă, dar nu vom atribui o valoare variabilei respective. Pe de altă parte, în „nul” vom defini o variabilă și vom atribui valoarea „nulă” variabilei.
- tipul de obiect (nedefinit) și tipul de obiect (nul).
Q # 25) Care este diferența dintre „declarația funcției” și „expresia funcției”?
Răspuns: Poate fi explicat cu un exemplu:
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);
Așa cum se arată în exemplu add () este o declarație de funcție, iar subtract () este o expresie de funcție. Sintaxa declarației funcției este ca o funcție salvată într-o variabilă.
Declarațiile de funcții sunt ridicate, dar expresiile de funcții nu sunt ridicate.
Q # 26) Ce sunt „setimeout ()”?
Răspuns: Va fi mai bine explicat cu un exemplu.
Luați în considerare fragmentul de cod
Console.log (‘First Line’); Console.log (‘Second Line’); Console.log (‘Third Line’);
Ieșirea fragmentului de cod:
Prima linie
A doua linie
A treia linie
Acum introduceți metoda settimeout () și înfășurați același set de cod în ea.
Settimeout(function() { Console.log (‘First Line’); },0); Console.log (‘Second Line’); Console.log (‘Third Line’);
Ieșirea fragmentului de cod:
A doua linie
A treia linie
Prima linie
Odată cu introducerea setimeout (), procesele devin asincrone. Primele instrucțiuni care vor fi plasate în stivă sunt Console.log („A doua linie”) și Console.log („A treia linie”) și vor fi executate mai întâi. Trebuie să așteptați până când totul din stivă este finalizat mai întâi.
Chiar dacă „0” este perioada de expirare, nu înseamnă că va fi executat imediat.
Q # 27) Ce este o închidere și cum o utilizați?
Răspuns: O închidere este o funcție interioară. Poate accesa variabilele exterioare ale unei funcții. În Închidere, în funcția_1 există o altă funcție_2 care returnează valoarea „A” și funcția_1 returnează și o valoare; spune „B”.
Aici, sum () este funcția exterioară și add () este o funcție interioară, poate accesa toate variabilele, inclusiv ‘first_num’ ‘second_num’ și ‘third_num’. Funcția exterioară apelează funcția interioară 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));
Ieșirea fragmentului de cod:
Rezultatul este: 500
Q # 28) În următorul fragment de cod puteți prevedea ieșirea sau Dacă primiți o eroare; vă rog să explicați eroarea?
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; }
Răspuns: Declarațiile de atribuire sunt considerate de la dreapta la stânga.
Ieșirea fragmentului de cod:
x = 200
și: 200
cu: 200
p: 200
q: 200
Q # 29) Puteți da un exemplu în care fragmentul de cod arată diferența dintre metodele 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; }
Răspuns: Acesta este un exemplu al metodei test () și exec (), consultați întrebările nr: 5 pentru mai multe detalii.
Ieșirea fragmentului de cod:
Am găsit modelul folosind exec (): Cum
Folosind test () rezultatul este: adevărat
Î # 30) Puteți da un exemplu care să arate JavaScript Hoisting?
Răspuns:
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
Vă rugăm să consultați Q # 11 pentru mai multe detalii.
Aici se utilizează variabila „num” înainte de a o declara. Dar JavaScript Hoisting o va permite.
Ieșirea fragmentului de cod:
Aici variabilele sunt utilizate înainte de a o declara.
Valoarea variabilei este 100
Q # 31) Puteți da un exemplu care arată utilizarea cuvântului cheie „debugger” în codul JavaScript?
Răspuns:
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;
Notă: Debuggerul trebuie activat pentru ca browserul să testeze codul. Consultați întrebările nr: 5 pentru mai multe detalii
Acesta este un exemplu de cuvânt cheie de depanare (browserul utilizat: Chrome)
Ieșirea fragmentului de cod:
Aici pentru a testa codul, depanatorul trebuie activat pentru browser,
în timpul depanării, codul de mai jos ar trebui să înceteze executarea înainte de a trece la linia următoare.
Se adaugă numere ...
Selectați „Reluați execuția scriptului” pentru a continua:
Suma numerelor: 1500
Q # 32) În următorul fragment de cod puteți prevedea ieșirea sau Dacă primiți o eroare; vă rog să explicați eroarea?
Sample: Software Testing Help
Example Type Converting
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 '; }
Răspuns: Luați în considerare codul
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
Ieșirea fragmentului de cod:
Comparația va reveni la „adevărat” de către operatorul de conversie de tip
Q # 33) Java și JavaScript sunt similare? Dacă nu, atunci care este diferența dintre Java și JavaScript?
Răspuns:
Sl Nu | Java | JavaScript |
---|---|---|
unu | Java este un limbaj de programare de uz general. | JavaScript este un limbaj de scriptare interpretat la nivel înalt. |
Două | Java se bazează pe concepte de programare orientată pe obiecte (OOPS). | JavaScript este atât un script orientat pe obiecte, cât și un script funcțional. |
3 | Se execută într-o mașină virtuală Java (JVM) sau un browser. | Se execută numai pe un browser. |
4 | Codul Java trebuie să fie compilat ca fișier de clasă Java. | JavaScript nu are nicio etapă de compilare. În schimb, un interpret din browser citește codul JavaScript, interpretează fiecare linie și îl rulează. |
Deci, pe scurt, aceste limbi nu sunt deloc legate sau dependente una de cealaltă.
Q # 34) Ce tipuri de date sunt acceptate de JavaScript?
Răspuns: JavaScript acceptă următoarele Șapte tipuri de date primitive și Obiect :
(i) Boolean: Acesta este un tip de date logice care poate avea doar două valori, adică adevărat sau fals. Când verificăm tipul de date „adevărat” sau „fals” folosind operatorul typeof, acesta returnează o valoare booleană.
De exemplu, typeof (true) // returnează boolean
Valorile booleene pot fi utilizate pentru compararea a două variabile.
De exemplu,
var x = 2; var y = 3; x==y //returns false
Valoarea booleană poate fi utilizată și pentru a verifica o stare
De exemplu,
var x = 2; var y = 3; If(xDacă condiția de mai sus ‘x O variabilă booleană poate fi creată utilizând funcția Boolean ().
var myvar = ‘Hi'; Boolean(myvar); // This returns true because the 'myvar' value exists
De asemenea, obiectul boolean poate fi creat folosind noul operator după cum urmează:
var myobj = new Boolean(true);
(Ii) Nul :Acesta este un tip de date care este reprezentat de o singură valoare, „nul” în sine. O valoare nulă nu înseamnă nicio valoare.
De exemplu,
var x = null; console.log(x);// This returns null
Dacă verificăm tipul de date al unui folosind operatorul typeof, obținem:
typeof(x); // This returns object. type of a null value is an object, not null.
(iii) Nedefinit: Acest tip de date înseamnă o variabilă care nu este definită. Variabila este declarată, dar nu conține nicio valoare.
De exemplu,
var x; console.log(x); // This returns undefined x=10;//Assign value to x console.log(x); // This returns 10
Variabila „a” a fost declarată, dar nu i s-a atribuit încă o valoare.
Putem atribui o valoare unui:
(iv) Număr: Acest tip de date poate fi o valoare în virgulă mobilă, un număr întreg, o valoare exponențială, un „NaN” sau un „Infinit”.
De exemplu,
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
Numărul literal poate fi creat utilizând funcția Number ():
var x = Number(10); console.log(x);// This returns 10
De asemenea, obiectul numeric poate fi creat folosind operatorul „nou”, după cum urmează:
var x= new Number(10); console.log(x); // This returns 10
(v) BigInt: Aceasta este o primitivă numerică care poate reprezenta numere întregi cu precizie arbitrară. BigInt este creat prin adăugarea lui n la sfârșitul unui număr întreg
De exemplu,
const x = 15n;
Numărul poate fi convertit într-un BigInt cu funcția BigInt (număr).
const x = 251; const y = BigInt(x); y === 251n // returns true
(vi) Șir: Acest tip de date este utilizat pentru a reprezenta date textuale.
De exemplu,
var strVar1 = “Hi,how are you?”; var strVar2 = ‘Hi,how are you?’;
Șirul nou poate fi creat și folosind funcția String () după cum urmează:
var strVar3 = String(‘Hi,how are you?’); // This creates a string literal with value ‘Hi,how are you?’
Funcția String () este, de asemenea, utilizată pentru a converti o valoare non-string într-un șir.
String(150); // This statement will create a string ‘150’
Șirul poate fi creat și folosind 'nou' 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?’
Șirurile JavaScript sunt imuabile, adică odată creat un șir, acesta nu poate fi modificat. Dar un alt șir poate fi creat folosind o operație pe șirul original.
De exemplu,
- Concatenând două șiruri folosind operatorul de concatenare (+) sau String.concat () .
- Prin obținerea subșirului folosind String.substr () .
(vii) Symbol: Aceasta este o valoare primitivă unică și imuabilă și utilizată ca cheie a unei proprietăți Obiect. Simbolurile sunt noi pentru JavaScript în ECMAScript 2015
LA Simbol valoarea reprezintă un identificator unic.
De exemplu,
var symVar1 = Symbol('Symbol1'); let symVar2 = Symbol('Symbol1'); console.log(symVar1 === symVar2); // This returns 'false'.
Deci, multe simboluri sunt create cu aceeași descriere, dar cu valori diferite.
Simbolurile nu pot fi convertite automat.
De exemplu,
var symVar1 = Symbol('Symbol1'); alert(symVar1); // This gives TypeError: Cannot convert a Symbol value to a string
Acest lucru poate fi lucrat folosind toString () după cum urmează:
alert(symVar1.toString()); // Symbol(symVar1), this works
Tipul de date obiect
Un obiect este o valoare din memorie la care face referire un identificator.
Obiectul se referă la o structură de date care conține date și instrucțiuni pentru a lucra cu datele. Obiectele se referă uneori la lucruri din lumea reală, De exemplu, un angajat sau o mașină.
De exemplu,
În obiectele JavaScript, valorile sunt scrise ca nume: valoare perechi ca mai jos:
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' };
nume: valori se numesc perechi proprietăți . De exemplu, „Tip” este proprietate, iar „BMW” este valoarea proprietății.
Valorile proprietății sunt accesate utilizând objectName.propertyName
sau objectName [„propertyName”]
De exemplu, car1.type sau car1 [„type”], returnează „BMW”
Valoarea obiectului car1 poate fi modificată după cum urmează:
car1.type = “Audi”;
Acum,
console.log(car1) ;//This will return {type:'Audi', model:” The BMW X5“ , color:'white'};
Q # 35) JavaScript este un limbaj sensibil la majuscule?
Răspuns: Da, JavaScript este un limbaj sensibil la majuscule. Înțelesul acestui cuvânt este cuvintele cheie ale limbii, variabilelor, numele funcțiilor și orice alți identificatori care trebuie întotdeauna să fie tastați cu litere mari majuscule sau mici.
De exemplu, myVar este o variabilă diferită de myvar.
Q # 36) Cum se determină la ce tip de date aparține un operand?
Răspuns: Tipul de date operand poate fi găsit folosind operatorul typeof
Returnează un șir care indică tipul operandului.
Sintaxă : tip de operand
tip de (operand)
Operandul poate fi orice variabilă, obiect sau funcție.
De exemplu,
console.log (typeof 10);// expected output: 'number' console.log (typeof 'hello');// expected output: 'string' console.log (typeof);//expected output: //'undefined';
Q # 37) De ce JavaScript este numit ca un limbaj slab tastat sau un limbaj dinamic?
Răspuns: JavaScript este numit ca un limbaj slab tastat sau un limbaj dinamic, deoarece variabilele JavaScript nu sunt asociate direct cu niciun tip de valoare și orice variabilă poate fi atribuită și realocată valori de toate tipurile:
De exemplu,
var myvar = ‘abc’; // myvar is string myvar =true; // myvar is now a boolean myvar = 10; // myvar is now a number
Î. 38) Ce este nul în JavaScript?
Răspuns: Valoarea nulă reprezintă absența intenționată a oricărei valori a obiectului.
Aceasta este una dintre valorile primitive ale JavaScript-ului.
De exemplu,
Var myvar = null; console.log(myvar); //This will print null
Q # 39) Ce este NaN?
Răspuns: NaN este o proprietate a obiectului global reprezentând Not-A-Number.
De exemplu,
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) Cum se împarte un șir în elemente matrice?
Răspuns: Un șir poate fi împărțit într-o matrice folosind metoda JavaScript split (). Această metodă ia un singur parametru, caracterul la care doriți să separați șirul și returnează șirurile dintre separator ca elemente dintr-o matrice.
De exemplu,
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
Q # 41) Cum se unesc elementele matricei într-un șir?
Răspuns: Elementele matrice pot fi unite folosind metoda join ().
De exemplu,
var myDaysArray= ['Sunday','Monday','Tuesday',”Wednesday”];
Elementele matrice sunt unite într-un șir după cum urmează:
myDaysString= myDaysArray.join(','); console.log(myDaysString);//output is joined string i.e.//Sunday,Monday,Tuesday,Wednesday
Q # 42) Ce tip de erori are JavaScript?
Răspuns: Următoarele sunt cele 2 tipuri de erori:
- Erori de sintaxă: Acestea sunt greșeli de scriere sau erori de ortografie în cod care fac ca programul să nu ruleze deloc sau să nu mai funcționeze parțial. De obicei, sunt furnizate și mesaje de eroare.
- Erori logice: Acestea sunt erori atunci când sintaxa este corectă, dar logica sau codul sunt inexacte. Aici, programul rulează cu succes fără erori. Dar rezultatele rezultatelor sunt incorecte. Acestea sunt adesea mai greu de remediat decât erorile de sintaxă, deoarece aceste programe nu transmit niciun mesaj de eroare pentru erorile logice.
Q # 43) Cum să gestionați un număr mare de opțiuni pentru o condiție într-un mod eficient cale?
Răspuns: Acest lucru se face folosind instrucțiunile switch:
De exemplu,
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) Ce este un operator ternar?
Răspuns: Ternarul sau condiționalul este un operator care este utilizat pentru a face o alegere rapidă între două opțiuni bazate pe un test adevărat sau fals.
Acest lucru poate fi folosit ca un substitut pentru forif ... altfel blocați când aveți două opțiuni care sunt alese între o condiție adevărată / falsă.
De exemplu,
if (some condition) result = ‘result 1’; else result = ‘result 2’;
Același cod poate fi scris folosind un operator ternar într-o singură declarație, după cum urmează:
rezultat = (condiție)? ‘rezultat 1’: ‘rezultat 2’;
Q # 45) Să presupunem că există un obiect numit persoană
const person = {
Nume : {
primul: „Bob”,
ultimul: „Smith”
}
};
Care dintre următoarele este modalitatea corectă de a accesa proprietatea obiectului „primul”?
- person.name.first,sau
- persoană [‘nume’] [‘primul’]?
Răspuns: Ambele sunt moduri corecte. adică folosind puncte precum person.name.first sau folosind notația paranteză ca persoana [‘nume’] [‘primul’]
Q # 46) Ce este „asta”?
Răspuns: Cuvântul cheie „acesta” se referă la obiectul curent în care este scris codul.
Aceasta este pentru a vă asigura că valorile corecte sunt utilizate atunci când contextul unui membru se schimbă
De exemplu, există două cazuri diferite ale unui persoană având nume diferite și este necesar să imprimați propriul nume în alertă după cum urmează:
const person1 = { name: 'Tom', greeting: function() { alert('Good Morning! I am ' + this.name + '.'); } }
Aici, ieșirea este Buna dimineata! Eu sunt „Tom”
const person2 = { name: 'Jerry', greeting: function() { alert('Good Morning! I am ' + this.name + '.'); } }
Aici, ieșirea este Buna dimineata! Eu sunt „Jerry”
Q # 47) Ce sunt funcțiile anonime?
Răspuns: Funcțiile anonime sunt funcții fără a avea niciun nume și nu vor face nimic de la sine. Acestea sunt utilizate în general împreună cu un gestionar de evenimente.
De exemplu, în următorul cod, cod funcție anonim, adică alertă („Bună”); ar rula la apăsarea butonului asociat:
var myButton = document.querySelector('button'); myButton.onclick = function() { alert('Hi'); }
Funcția anonimă poate fi atribuită și valorii unei variabile.
De exemplu,
var myVar = function() { alert('Hi'); }
Această funcție poate fi invocată folosind:
myVar();
Concluzie
Este mai bine să stocați codurile JavaScript, CSS și HTML ca fișiere externe „js” separate. Separarea părții de codare și a părții HTML va facilita citirea și lucrul cu acestea. Mai mulți dezvoltatori găsesc, de asemenea, această metodă mai ușor de lucrat simultan.
Codul JavaScript este ușor de întreținut. Același set de coduri JavaScript poate fi utilizat în mai multe pagini. Dacă folosim coduri JavaScript externe și dacă trebuie să schimbăm codul, atunci trebuie să-l schimbăm într-un singur loc. Astfel încât să putem reutiliza codul și să-l menținem într-un mod mult mai ușor.
Citire sugerată = >> TypeScript vs JavaScript
Codul JavaScript are o performanță mai bună. Fișierele JavaScript externe vor crește viteza de încărcare a paginii, deoarece acestea vor fi memorate în cache de browser.
Sper că ați găsit utile întrebările și răspunsurile la interviurile JavaScript. Exersează cât mai multe întrebări și fii încrezător.
Lectură recomandată
- Întrebări și răspunsuri la interviu
- Top 32 Cele mai bune întrebări și răspunsuri pentru interviul Datastage
- Întrebări și răspunsuri la interviuri de testare ETL
- Top 20+ Întrebări și răspunsuri la interviu .NET
- Câteva întrebări și răspunsuri dificile de testare manuală
- Cele mai bune 25 de întrebări și răspunsuri de interviu pentru testarea agilă
- Întrebări de interviu cu răspunsuri Spock (Cele mai populare)
- Câteva întrebări interesante despre testarea software-ului