Heim > Web-Frontend > Front-End-Fragen und Antworten > Detaillierte Beispiele erläutern die Mängel der Verwendung von var zum Deklarieren von Variablen

Detaillierte Beispiele erläutern die Mängel der Verwendung von var zum Deklarieren von Variablen

WBOY
Freigeben: 2022-08-09 16:01:26
nach vorne
1762 Leute haben es durchsucht

Dieser Artikel vermittelt Ihnen relevantes Wissen über Javascript, das hauptsächlich die damit verbundenen Probleme der unzureichenden Verwendung von var zum Deklarieren von Variablen aufzeigt. Die Verwendung von var zum Deklarieren von Variablen ermöglicht wiederholte Variablendeklarationen, was dazu führt, dass Daten überschrieben werden hilft allen. 🔜

Variablenförderung

Detaillierte Beispiele erläutern die Mängel der Verwendung von var zum Deklarieren von Variablen

Seltsamer Datenzugriff

Schließungsproblem

Variablen in der Funktion werden nach oben befördert

    Variablen im globalen Bereich werden ebenfalls nach oben befördert
  • var

Var-Deklaration in JavaScript Der Defekt von Variablen
  • kann ohne Deklaration verwendet werden (mit var deklarierte Variablen werden vorkompiliert oder auf Variablen hingewiesen), was unlogisch ist.
  • Die gleiche Variable kann mehrmals deklariert werden, aber genau genommen kann eine Variable, nachdem sie einmal deklariert wurde, nur geändert und nicht später deklariert werden. Es ist auch nicht logisch.

Schleifenparameter in einer for-Schleife können außerhalb der Schleife (die for-Schleife ist verschmutzt) über die ursprüngliche Rolle des Hauptregelkreises hinaus verwendet werden. Nicht logisch.

Kein Bereich auf Blockebene.

  • Nehmen wir ein Beispiel
  • //首先判断生成一个随机数当随机数小于0.5时声明a赋值为‘abc’
    //然后输出a
    
    if (Math.random() < 0.5){
    	var a = 'abc';
    	console.log(a);
    }
    //如果不是那么输出a
    else {
    	console.log(a)
    }
    
    console.log(a);
    Nach dem Login kopieren
  • Hier liegt ein sehr ernstes Problem vor:
  • Beurteilen und generieren Sie zunächst eine Zufallszahl und geben Sie a
  • aus. Wenn a

    nicht kleiner als 0,5 ist, gibt es auch a aus. Aufgrund des Problems der Variablenförderung existiert ein a, obwohl es gelesen werden kann , der globale Bereich ist von der Variablenheraufstufung betroffen. Der Bereich ist verschmutzt.
Normalerweise scheint dies kein Problem zu sein, aber wenn Sie diese Codezeichenfolge in eine andere Sprache einfügen und ähnlichen Code schreiben, wird auf jeden Fall ein Fehler gemeldet. Gleichzeitig wird es aufgrund dieses Problems schwierig für große Anwendungen bis zu einem gewissen Grad.

Lassen Sie uns das Schließungsproblem noch einmal betrachten:

//选中div
var div = document.getElementByTd('div');
//我这里创建10个按钮并添加进代码里

for (var i = 1; 1 < 10; i ++){
	var btn = document.createElement('button');
	btn.innerHTML = '按钮' + i;
	div.appendChild(btn);
	//添加点击事件点击按钮时输出对应的i
	btn.onclick = function () {
		console.log(i);
	}
}
//但是当点击输出时所有的按钮都为11
//原因是当在for声明变量i时遇到了变量提升就导致了来来回回更改的就只有这一个i
//而当我们点击时for早已循环完所以循环完成时i = 11;就输出也是11了
//
//一般我们的解决办法是将点击事件上写一个立即执行函数执行完删除方可正常运行
Nach dem Login kopieren

Globale Variablen werden an globale Objekte gemountet: Probleme mit der Verschmutzung globaler Objektmitglieder

var abc = "123"
console.log(abc);
//可以正常输出对吧,这就导致了一个问题
//我可以将abc挂载到window上如果说我要写很多的代码那就会导致全局变量污染

//然后我给console赋值
var console = "abc";
console.log(console);
//然后再输出console会报错
//因为我对window的console进行了覆盖所以会报错
Nach dem Login kopieren
Dies sind die verschiedenen Probleme und Unannehmlichkeiten, auf die der ursprüngliche JS-Platz gestoßen ist

【 Verwandte Empfehlungen:

Javascript-Video-Tutorial

,

Web-Frontend

Das obige ist der detaillierte Inhalt vonDetaillierte Beispiele erläutern die Mängel der Verwendung von var zum Deklarieren von Variablen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:csdn.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage