Normalerweise wird JavaScript als interpretierendes Skript sequentiell von oben nach unten ausgeführt, aber JavaScript erlaubt auch eine Verschachtelung in seinen Anweisungen, die wie folgt aussieht:
document.write("<script>alert(t);</scr"+" ipt>");
Hinweis: </script> kann nicht als </script> geschrieben werden und muss in Form einer Zeichenfolgenverkettung ausgedrückt werden, andernfalls kommt es zu Syntaxfehlern, wahrscheinlich weil JavaScript auf </script> trifft und davon ausgeht, dass das Skript vorhanden ist über.
In diesem Fall muss die Ausführungsreihenfolge normaler Skripte und eingebetteter Skripte untersucht werden.
b.js:[Download]
warning("5");
a.js:[Download]
warning("4");
document.write("<script src=b.js></scr"+"ipt>");
alarm("6");
test.html:[Herunterladen]
<script src=a.js></script>
<Skript>
alarm("1");
document.write("<script src=b.js></scr"+"ipt>");
document.write("<script>alert("3")</scr"+"ipt>");
alarm("2");
</script>
Wenn Sie test.html ausführen, sehen Sie, dass die Druckreihenfolge 4,6,5,1,3,2,5 ist.
Sie können auch einige verwandte Tests durchführen und die Schlussfolgerung lautet:
1. Verschiedene Codeblöcke auf derselben Ebene, die Ausführungsreihenfolge zwischen Codeblöcken ist von oben nach unten;
2. Wenn der Code in den Code eingebettet ist, wird zuerst der obere Codeblock ausgeführt, und dann wird der im Code eingebettete Codeblock ausgeführt, der sich auf die Einführung einer Datei in eine andere Datei bezieht, nicht auf alle Codes in der Form „document.write“ eingegeben.