Für ein Web-Frontend werden Sie während des Interviews auf jeden Fall auf einige der neuesten JS-Interviewfragen stoßen. Jede Frage ist beeindruckend.
Vorbereitendes Parsen: Im aktuellen Umfang werden vor der Ausführung von js die Schlüsselwörter var und function im Voraus deklariert, aber nicht zugewiesen (persönliche Meinung)
Ich bin von der Voranalyse beeindruckt, nicht weil sie schwierig ist , aber seien Sie vorsichtig, wenn Sie unvorsichtig sind, schreiben Sie möglicherweise die falsche Antwort! Ich bin auf mehr als eine Frage vor der Analyse gestoßen, und ich kann mich noch an zwei davon erinnern!
2-1. Voranalyse 1
alert(a) a(); var a=3;function a(){ alert(10) } alert(a) a=6; a();
------------Trennlinie------------ - ----
alert(a) a(); var a=3; var a=function(){ alert(10) } alert(a) a=6; a();
Als ich diesen Code sah, habe ich falsch geantwortet. Später habe ich einen Freund um Rat gefragt, und dann habe ich es selbst verstanden und es wurde geklärt!
Es gibt tatsächlich zwei Testpunkte: Der erste besteht darin, Variablen im Voraus zu deklarieren, und der zweite besteht darin, Funktionen vor der Variablendeklaration zu deklarieren!
Lassen Sie es mich unten kurz analysieren.
Der erste Teil der Operation ergibt sich:
1. Die Funktionsdeklaration hat Vorrang vor der Variablendeklaration, daher ist a am Anfang die Funktion a(){alert(10) }, Sie werden sich um diese Funktion kümmern.
2.a(), wenn die Funktion ausgeführt wird, wird Warnung(10) angezeigt.
3. Var a=3 wird ausgeführt, sodass Warnung(a) 3 anzeigt.
4 Beim Ausführen von a() wird also ein Fehler gemeldet.
Der zweite Teil der Operation ergibt:
1.underfind
2. Fehlerbericht
Wie bereits erwähnt, handelt es sich beim Pre-Parsing um eine Vordeklaration mit den Schlüsselwörtern var und function, aber ohne Wertzuweisung . Zuerst wurde es also nicht gefunden, und dann wurde ein Fehler gemeldet, weil bei der Ausführung von a() a keine Funktion war.
//Funktionsausdruck, dasselbe wie Variablendeklaration
var a=function(){ alert(10) }
//Funktionsdeklaration, besser als Variablendeklaration
function a(){ alert(10) }
2-2. Vorbereitende Analyse und Umfang
var a=0;function aa(){ alert(a) a=3 }
//Das Ergebnis ist, dass nichts passiert, da Alert(0) nur ausgeführt wird, wenn die aa-Funktion ausgeführt wird
------------Trennlinie 1------------------
var a=0;function aa(){ alert(a) var a=3 } aa();
// underfind In der aa-Funktion gibt es var a=3, dann wird im aa-Bereich die Variable a im Voraus deklariert, ihr wird jedoch kein Wert zugewiesen, daher ist sie underfind
-- ------- ---Trennlinie 2----
var a=0;function aa(a){ alert(a) var a=3 } aa(5) alert(a)
//5,0 Im Funktionskörper, die Priorität des Parameters a ist höher als die Variable a
------------Trennlinie 3------------ ------
var a=0; function aa(a){
warning(a)
a=3
}
aa(5)
Alert(a)
//5,0 Führen Sie im Funktionskörper Alert(a) und a=3 aus. Was geändert wird, ist nicht die globale Variable a, sondern der Parameter a
---. --------- Trennlinie 4----
var a=0;function aa(a){ alert(a) var a=3 alert(a) } aa(5)
//5,3
//Ich habe auch etwas davon, das ich nicht verstehe. Bitte fragen Sie online um Rat. Es gibt zwei Antworten (wenn Sie wissen, wie man es versteht, geben Sie mir bitte einen Rat in den Kommentaren)
// 1. Die Parameterpriorität ist höher als die Variablendeklaration, daher wird die Deklaration der Variablen a tatsächlich ignoriert. Diesmal entspricht sie
//var a=0;
//function aa(a){
// var a=5;
// alarm(a)
// a=3
// alarm(a)
//}
//aa(5)
//2. Formale Parameter und lokale Variablen haben die gleiche Priorität, was äquivalent zu
//var a=0;
//function aa(a){
// var a ist ; Zuerst deklarieren
// a=5 Da die formalen Parameter und VariablennameDer Maßstab ist derselbe, abgedeckt!
// Alert(a)
// a=3
// Alert(a)
//}
//aa(5)
--- ----------Trennlinie 5------------------
var a=0;function aa(a){ alert(a) a=3 alert(a) } aa() alert(a) //underfind 3 0
//Zuerst, Parameter Die Priorität ist höher als die der globalen Variablen, daher wird sie unterfindet
//a=3 Tatsächlich wird der Wert des formalen Parameters a geändert, nicht der der globalen Variablen a, und alarm( a) ist auch ein formaler Parameter.
//Der letzte Alarm(a), Sie wissen schon
Ich werde dazu nicht viel mehr sagen, es ist sehr einfach, aber sehr klassisch. Das heißt, das aktuelle Element entspricht der Summe der beiden vorherigen Elemente
3-2. Datenanordnung Zum Beispiel 123454321 23456765432var arr=[];for(var i=0;i<10;i++ ){ i<=1?arr.push(1):arr.push(arr[i-1]+arr[i-2]); } console.log(arr)
Der Code lautet
Das ist zu viel Code. Später habe ich diese Art von < studiert 🎜>
//01234543210 //先展示前面的 01234 //n:开始的数字 m:结束的数字function num1(n,m){ for(var i=n;i<m;i++){ //再展示后面的 543210 console.log(i); if(i===m-1){ num2(n,m) } } }function num2(n,m){ for(var i=m;i>=n;i--){ console.log(i) } } num1(2,5) //2345432
1. Führen Sie zuerst num(2,5) aus, was
function num(n,m){ console.log(n); if(n<m){ num(n+1,m); console.log(n); } } num(2,5) //2345432
ist, und dann
console.log(2); -> num(3,5); -> console.log(2); //执行num(3,5); 就是是相当于 console.log(3); -> num(4,5); -> console.log(3); 下面以此类推 console.log(2); -> console.log(3); -> num(4,5); -> console.log(3); -> console.log(2);
console.log(2); -> console.log(3); -> console.log(4); -> num(5,5); -> console.log(4); -> console.log(3); -> console.log(2);
console.log(2); -> console.log(3); -> console.log(4); -> console.log(5); -> console.log(4); -> console.log(3); -> console.log(2);
Verwandte Lektüre:
So erstellen Sie eine Schmetterlingsfluganimation mit CSS3
Anleitung Verwenden Sie Leinwand, um dies zu erreichen. Die Interaktion zwischen dem Ball und der Maus
So verwenden Sie Leinwand, um den Effekt einer Partikelfontänenanimation zu erzeugen
Das obige ist der detaillierte Inhalt vonAnalyse der neuesten JS-Interviewfragen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!