


So ändern Sie Variablen außerhalb des Gültigkeitsbereichs in JavaScript_Javascript-Tipps
1. Ich habe heute beim Lesen des JavaScript-Lernführers die außerschulischen Übungen gemacht und daher eine detaillierte und gründliche Untersuchung der in der Funktion übergebenen Parameter durchgeführt.
Das Thema ist wie folgt:
Wie kann eine Funktion Variablen außerhalb ihres Gültigkeitsbereichs ändern? Schreiben Sie eine Funktion, die ein Array von Zahlen von 1 bis 5 als Parameter akzeptiert. Nach dem Aufruf der Funktion werden die numerischen Elemente durch die entsprechenden Zeichenfolgendarstellungen ersetzt
Müssen auf die Wissenspunkte geachtet werden:
var outer_number = ; var outer_boolean = true; var outer_array = [,,]; var outer_object = {test:""}; function display(num,bool,arr,obj){ console.log("number:"+num+"\nboolean:"+bool+"\narray:"+arr+"\nobject:"+obj.test); } function test(num,bool,arr,obj){ display(num,bool,arr,obj);//num=,bool=true,array=[,,],object.test= num = ; bool = false; arr[] = ; obj.test = ""; display(num,bool,arr,obj);//num=,bool=false,array=[,,,],object.test= arr = [,,]; obj = {test:""}; display(num,bool,arr,obj);//num=,bool=false,array=[,,],object.test= } test(outer_number,outer_boolean,outer_array,outer_object); display(outer_number,outer_boolean,outer_array,outer_object);//num = ,bool=true,array=[,,,],object.test=
boolean:true
array:1,2,3
object:122"
boolean:false
array:1,2,3,3
object:134"
boolean:false
array:3,2,1
object:133"
boolean:true
array:1,2,3,3
object:134"
Tatsächlich ist die sogenannte Zuweisung durch Referenz in JavaScript kein Kopieren durch Referenz im eigentlichen Sinne, sie kann auch als Übergabe per Objekt oder Aufruf per Freigabe bezeichnet werden
Unter dieser Bedingung des Passing-by-Sharing kann man sagen, dass die Referenz, die wir erhalten, nur eine Kopie der tatsächlichen Parameterreferenz ist. Der größte Unterschied zwischen ihr und der Passing-by-Referenz, die wir oft sagen, besteht darin, dass wir sie der Referenzkopie zuordnen Der Wert des Parameters wird nicht beeinflusst, wie wir es oben getan haben, die Zuweisungsoperation ist nicht möglich.
Natürlich betrachten wir sowohl Objekttypen als auch Basistypen. Objekte sind veränderbar und Basistypen sind unveränderlich (Hinweis! Bei der Zeichenfolgenänderung handelt es sich tatsächlich um eine neue zurückgegebene Zeichenfolge), daher gilt die Übergabe durch gemeinsame Nutzung auch für Basistypen mit Lieferung durch Teilen.
In JavaScript werden sowohl Grundtypen als auch Objekte durch Teilen aufgerufen. Aufgrund der Unveränderlichkeit der Grundtypen von JavaScript gibt es jedoch keinen Unterschied zwischen der Übergabe von Grundtypen durch Teilen und der Übergabe als Wert, während Objekte durch Teilen übergeben werden.
Aufruf durch Teilen: Was übergeben wird, ist eine Kopie der tatsächlichen Parameterreferenz. Unsere Zuweisung zur Referenzkopie hat keinen Einfluss auf den Wert des tatsächlichen Parameters, aber die Referenzkopie kann zum Ändern des referenzierten Inhalts verwendet werden Adresse
1. Grundlegende Typen, die als Wert (oder durch Teilen) übergeben werden. Interne Zuweisungsänderungen wirken sich nicht auf das aufrufende Programm aus.
2. Der Objekttyp wird durch Teilen übergeben. Die interne Zuweisung an die Referenz ist ungültig und die Zuweisungsänderung am Objektattribut ist gültig.
So verstehe ich es wahrscheinlich. Wenn ich irgendwo Fehler mache, hoffe ich, dass ich darauf hingewiesen werden kann.
Ziehen Sie den JavaScript-Bereich unten separat heraus
Jede Programmiersprache hat das Konzept des Bereichs. Einfach ausgedrückt ist der Bereich der zugängliche Bereich von Variablen und Funktionen, das heißt, der Bereich steuert die Sichtbarkeit und den Lebenszyklus von Variablen und Funktionen. In JavaScript gibt es zwei Arten von Variablenbereichen: den globalen Bereich und den lokalen Bereich.
Globaler Geltungsbereich
Objekte, auf die überall im Code zugegriffen werden kann, haben einen globalen Gültigkeitsbereich. Im Allgemeinen haben die folgenden Situationen einen globalen Gültigkeitsbereich:
(1) Die äußerste Funktion und die außerhalb der äußersten Funktion definierten Variablen haben einen globalen Gültigkeitsbereich, zum Beispiel:
var authorName="山边小溪"; function doSomething(){ var blogName="梦想天空"; function innerSay(){ alert(blogName); } innerSay(); } alert(authorName); //山边小溪 alert(blogName); //脚本错误 doSomething(); //梦想天空 innerSay() //脚本错误(2) Alle undefinierten und direkt zugewiesenen Variablen werden automatisch mit globalem Gültigkeitsbereich deklariert, zum Beispiel:
变量blogName拥有全局作用域,而authorName在函数外部无法访问到。
(3)所有window对象的属性拥有全局作用域
一般情况下,window对象的内置属性都拥有全局作用域,例如window.name、window.location、window.top等等。
1. 局部作用域(Local Scope)
和全局作用域相反,局部作用域一般只在固定的代码片段内可访问到,最常见的例如函数内部,所有在一些地方也会看到有人把这种作用域称为函数作用域,例如下列代码中的blogName和函数innerSay都只拥有局部作用域。
function doSomething(){ var blogName="梦想天空"; function innerSay(){ alert(blogName); } innerSay(); } alert(blogName); //脚本错误 innerSay(); //脚本错误

C und JavaScript erreichen die Interoperabilität durch WebAssembly. 1) C -Code wird in das WebAssembly -Modul zusammengestellt und in die JavaScript -Umgebung eingeführt, um die Rechenleistung zu verbessern. 2) In der Spieleentwicklung kümmert sich C über Physik -Engines und Grafikwiedergabe, und JavaScript ist für die Spiellogik und die Benutzeroberfläche verantwortlich.

JavaScript wird in Websites, mobilen Anwendungen, Desktop-Anwendungen und serverseitigen Programmierungen häufig verwendet. 1) In der Website -Entwicklung betreibt JavaScript DOM zusammen mit HTML und CSS, um dynamische Effekte zu erzielen und Frameworks wie JQuery und React zu unterstützen. 2) Durch reaktnatives und ionisches JavaScript wird ein plattformübergreifendes mobile Anwendungen entwickelt. 3) Mit dem Elektronenframework können JavaScript Desktop -Anwendungen erstellen. 4) Node.js ermöglicht es JavaScript, auf der Serverseite auszuführen und unterstützt hohe gleichzeitige Anforderungen.

Python eignet sich besser für Datenwissenschaft und Automatisierung, während JavaScript besser für die Entwicklung von Front-End- und Vollstapel geeignet ist. 1. Python funktioniert in Datenwissenschaft und maschinellem Lernen gut und unter Verwendung von Bibliotheken wie Numpy und Pandas für die Datenverarbeitung und -modellierung. 2. Python ist prägnant und effizient in der Automatisierung und Skripten. 3. JavaScript ist in der Front-End-Entwicklung unverzichtbar und wird verwendet, um dynamische Webseiten und einseitige Anwendungen zu erstellen. 4. JavaScript spielt eine Rolle bei der Back-End-Entwicklung durch Node.js und unterstützt die Entwicklung der Vollstapel.

C und C spielen eine wichtige Rolle in der JavaScript -Engine, die hauptsächlich zur Implementierung von Dolmetschern und JIT -Compilern verwendet wird. 1) C wird verwendet, um JavaScript -Quellcode zu analysieren und einen abstrakten Syntaxbaum zu generieren. 2) C ist für die Generierung und Ausführung von Bytecode verantwortlich. 3) C implementiert den JIT-Compiler, optimiert und kompiliert Hot-Spot-Code zur Laufzeit und verbessert die Ausführungseffizienz von JavaScript erheblich.

Die Anwendung von JavaScript in der realen Welt umfasst Front-End- und Back-End-Entwicklung. 1) Zeigen Sie Front-End-Anwendungen an, indem Sie eine TODO-Listanwendung erstellen, die DOM-Operationen und Ereignisverarbeitung umfasst. 2) Erstellen Sie RESTFUFFUPI über Node.js und express, um Back-End-Anwendungen zu demonstrieren.

Zu den Hauptanwendungen von JavaScript in der Webentwicklung gehören die Interaktion der Clients, die Formüberprüfung und die asynchrone Kommunikation. 1) Dynamisches Inhaltsaktualisierung und Benutzerinteraktion durch DOM -Operationen; 2) Die Kundenüberprüfung erfolgt vor dem Einreichung von Daten, um die Benutzererfahrung zu verbessern. 3) Die Aktualisierung der Kommunikation mit dem Server wird durch AJAX -Technologie erreicht.

Es ist für Entwickler wichtig, zu verstehen, wie die JavaScript -Engine intern funktioniert, da sie effizientere Code schreibt und Leistungs Engpässe und Optimierungsstrategien verstehen kann. 1) Der Workflow der Engine umfasst drei Phasen: Parsen, Kompilieren und Ausführung; 2) Während des Ausführungsprozesses führt die Engine dynamische Optimierung durch, wie z. B. Inline -Cache und versteckte Klassen. 3) Zu Best Practices gehören die Vermeidung globaler Variablen, die Optimierung von Schleifen, die Verwendung von const und lass und die Vermeidung übermäßiger Verwendung von Schließungen.

Python eignet sich besser für Anfänger mit einer reibungslosen Lernkurve und einer kurzen Syntax. JavaScript ist für die Front-End-Entwicklung mit einer steilen Lernkurve und einer flexiblen Syntax geeignet. 1. Python-Syntax ist intuitiv und für die Entwicklung von Datenwissenschaften und Back-End-Entwicklung geeignet. 2. JavaScript ist flexibel und in Front-End- und serverseitiger Programmierung weit verbreitet.


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

SAP NetWeaver Server-Adapter für Eclipse
Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

MantisBT
Mantis ist ein einfach zu implementierendes webbasiertes Tool zur Fehlerverfolgung, das die Fehlerverfolgung von Produkten unterstützen soll. Es erfordert PHP, MySQL und einen Webserver. Schauen Sie sich unsere Demo- und Hosting-Services an.

Herunterladen der Mac-Version des Atom-Editors
Der beliebteste Open-Source-Editor

Dreamweaver Mac
Visuelle Webentwicklungstools

SublimeText3 Linux neue Version
SublimeText3 Linux neueste Version