Sonderübung 20

Inhaltsverzeichnis

1. Multiple-Choice-Fragen

    1. Welche Informationen werden von der Konsole ausgegeben, nachdem der folgende Code ausgeführt wurde?

    2. Welche der folgenden Optionen ist falsch beschrieben?

    3. Was ist das Ergebnis des Arrays, nachdem der folgende Code ausgeführt wurde?

2. Programmierfragen

    1. Konvertieren Sie das Parameterarray in eine String-Ausgabe


1. Multiple-Choice-Fragen

1. Welche Informationen werden von der Konsole ausgegeben, nachdem der folgende Code ausgeführt wurde?
for(let i = 0; i < 5; i++){
    requestAnimationFrame(() => console.log(i));
}

A、1 2 3 4 5

B、0 1 2 3 4

C、4 4 4 4 4

D、5 5 5 5 5

Richtige Antwort: B Ihre Antwort: D

Analysieren:

(1) Obwohl „requestAnimationFrame“ eine asynchrone Funktion ist , handelt es sich bei der for-Schleife um eine synchrone Aufgabe . Wenn eine synchrone Aufgabe auf eine asynchrone Aufgabe trifft, wird sie automatisch angehalten und führt die synchrone Aufgabe weiter aus. i ist in der for-Schleife definiert. let ist a Geltungsbereich auf Blockebene , und es gibt keine Variablenförderung. Bei wiederholter Definition wird die deklarierte Variable nicht als Windows-Attribut verwendet, was bedeutet, dass das aktuelle i nur im aktuellen Zyklus gültig ist . Es kann verstanden werden, dass das i von jedem Cycle ist eigentlich eine neue Variable, die den aktuellen Wert und requestAnimationFrame in diese Rollendomäne einfügt

(2) Erweiterung: window.requestAnimationFrame() teilt dem Browser mit, dass Sie eine Animation ausführen möchten, und fordert den Browser auf, die angegebene Rückruffunktion aufzurufen, um die Animation vor dem nächsten Neuzeichnen zu aktualisieren. Diese Methode muss eine Rückruffunktion als übergeben ein Parameter. Die Rückruffunktion wird vor dem nächsten Neuzeichnen des Browsers ausgeführt


2. Welche der folgenden Optionen ist falsch beschrieben ?

A. Iframes werden zum Einfügen von Seiten Dritter in Webseiten verwendet. Frühere Seiten verwendeten Iframes hauptsächlich für die Navigationsleiste, die auf vielen Seiten derselbe Teil ist, um wiederholte Downloads beim Seitenwechsel zu vermeiden

B. Die Erstellung von Iframes ist 1–2 Größenordnungen langsamer als bei gewöhnlichen DOM-Elementen

C. Das Iframe-Tag blockiert das Laden der Seite

D. Die Essenz von iframe ist der Incude-Mechanismus der dynamischen Sprache und die Verwendung von Ajax zum dynamischen Füllen von Inhalten

richtige Antwort: D

Analysieren:

(1) Einschränkungen von iframe

① Die Erstellung von Iframes ist 1–2 Größenordnungen langsamer als die Erstellung allgemeiner DOM-Elemente

         Seiten, die Iframes verwenden, enthalten im Allgemeinen nicht zu viele Iframes, sodass der Zeitaufwand für die Erstellung von DOM-Knoten keinen großen Anteil ausmacht

② Seitenladen blockieren

        Das Onload-Ereignis des Fensters muss ausgelöst werden, nachdem alle Iframes geladen wurden (einschließlich der darin enthaltenen Elemente). In Safari und Chrome kann diese Blockierungssituation durch dynamisches Festlegen des SRC des Iframes über JavaScript vermieden werden

③Der einzige Verbindungspool

        In den meisten Browsern teilen die Hauptseite und der darin enthaltene Iframe eine Verbindung . Dies bedeutet, dass der Iframe beim Laden von Ressourcen möglicherweise alle verfügbaren Verbindungen verbraucht und das Laden der Hauptseitenressourcen blockiert. Das ist natürlich in Ordnung, wenn der Inhalt im Iframe wichtiger ist als der Inhalt der Hauptseite. Aber normalerweise ist der Inhalt im Iframe weniger wichtig als der Inhalt der Hauptseite. Es lohnt sich an dieser Stelle nicht, die verfügbaren Verbindungen im Iframe zu verbrauchen. Eine Lösung besteht darin, den SRC des Iframes dynamisch festzulegen, nachdem die wichtigen Elemente auf der Hauptseite geladen wurden

        Browser können nur eine kleine Anzahl von Verbindungen zum Webserver öffnen. Ältere Browser, einschließlich Internet Explorer 6 und 7 und Firefox 2, können nur zwei Verbindungen zu einem Domänennamen (Hostnamen) gleichzeitig öffnen. Dieses Anzahllimit wurde in neueren Versionen des Browsers erhöht. Safari 3+ und Opera 9+ können 4 Verbindungen zu einer Domain gleichzeitig öffnen, Chrome 1+, IE 8 und Firefox 3 können 6 Verbindungen gleichzeitig öffnen

④ Nicht förderlich für SEO

        Suchmaschinen-Crawler können Iframes nicht interpretieren. Darüber hinaus ist iframe selbst keine dynamische Sprache und sowohl Stile als auch Skripte müssen zusätzlich importiert werden

(2) Vertieftes Verständnis

https://www.cnblogs.com/Leophen/p/11403800.html


3. Was ist das Ergebnis des Arrays, nachdem der folgende Code ausgeführt wurde?
var array=[-1,1,3,4,6,10];
array.sort((a,b)=>Math.abs(a-3)-Math.abs(b-3));

A、[10,-1,6,1,4,3]

B、[10,6,4,3,1,-1]

C、[3,4,1,6,-1,10]

D、[-1,1,3,4,6,10]

Richtige Antwort: C Ihre Antwort: A

Analysieren:

(1) Die Methode sort() steht hinter der Blasensortierung . Für sortFunction(a,b) sind die Elemente a und b benachbarte Elemente im Array , aber die Positionen von a und b im Array sind b, a, das Das heißt, das b -Element befindet sich vor dem a-Element . Nach der Ausführung gibt sortFunction(a,b) einen Wert zurück. Wenn der Rückgabewert >0 ist , ist  true die Position von a und b unverändert , b, a; wenn der Rückgabewert <0 ist , ist er  falsch . Tauschen Sie die Positionen der Elemente a und b aus , also a und b; wenn der Rückgabewert == 0 ist, bleiben die Positionen von a und b unverändert

(2) Analyse der ursprünglichen Frage

①Ursprüngliches Array var array= [-1,1,3,4,6,10] ;

②Parameter (a,b)=>Math.abs(a-3)-Math.abs(b-3): Der Absolutwert des Werts minus 3 [4, 2, 0, 1, 3, 7] wird bestimmt als ein zu sortierender Parameter

③Ordnen Sie [0, 1, 2, 3, 4, 7] entsprechend der Größe des Absolutwerts minus 3 an , und das entsprechende ursprüngliche Array wird als [3, 4, 1, 6, -1, 10] sortiert.


2. Programmierfragen

1. Konvertieren Sie das Parameterarray in eine String-Ausgabe

Beispiel: _join([1,'2',3]) -> "123"
Hinweis: Es werden nur eindimensionale Arrays und primitive Datentypen berücksichtigt

Analysieren:

(1) join()-Methode, Array in String konvertieren

<script>
    let array = [1,'2',3]
    function _join(array){
        return array.join('')
    }
    console.log(_join(array));
</script>

(2) forEach durchläuft das Array und weist der leeren Zeichenfolge x nacheinander Werte zu

<script>
    let array = [1,'2',3]
    function _join(array){
        let x = ''
        array.forEach(element => {
            x = x + element
        });
        return x
    }
    console.log(_join(array));
</script>

(3) Konvertieren Sie zuerst die Zeichenfolge, die Methode replaceAll() entfernt das Komma „,“ und gibt schließlich eine neue Zeichenfolge zurück

<script>
    let array = [1,'2',3]
    function _join(array){
        let x = array.toString().replaceAll(',','')
        return x
    }
    console.log(_join(array));
</script>

(4) Reduce()-Methode

<script>
    let array = [1,'2',3]
    function _join(array){
        let x = ''
        return array.reduce((pre,cur)=>pre+cur,x)
    }
    console.log(_join(array));
</script>

Supongo que te gusta

Origin blog.csdn.net/qq_51478745/article/details/131563191
Recomendado
Clasificación