Heim Web-Frontend js-Tutorial Einige seltsame Verhaltensweisen von JavaScript-Arrays_Javascript-Tipps

Einige seltsame Verhaltensweisen von JavaScript-Arrays_Javascript-Tipps

May 16, 2016 pm 03:18 PM
js数组

Die Bedeutung von Arrays in Programmiersprachen ist selbstverständlich. Arrays sind auch eines der am häufigsten verwendeten Objekte. Aufgrund ihrer schwachen Typen sind Arrays in JavaScript sehr flexibel Im Gegensatz zu Arrays in stark typisierten Hochsprachen wie Java, die nur Elemente desselben Typs oder seiner Untertypen speichern können, kann JavaScript mehrere Elementtypen im selben Array speichern und die Länge kann auch dynamisch angepasst werden. wenn die Daten zunehmen oder automatische Änderungen an der Array-Länge reduzieren.

Heute habe ich JavaScript-Arrays überprüft und dann einige seiner seltsamen Verhaltensweisen zusammengefasst. Wenn es Fehler gibt, weisen Sie sie bitte darauf hin!

Seltsam 1: Die Konstruktorfunktion Array() kann ohne Verwendung des neuen Schlüsselworts aufgerufen werden:

Der Array()-Konstruktor verwendet die ihm als Elemente des Arrays übergebenen Parameter, um ein Array zu erstellen. Im Allgemeinen nennen wir es wie folgt:

var a = new Array(1, 2, "bom!");
a.length; //3
console.log(a); //[1, 2, "bom!"] 
Nach dem Login kopieren

Es ist jedoch auch möglich, new wie folgt wegzulassen:

var a = Array(1, 2, "bom!");
a.length; //3
console.log(a); //[1, 2, "bom!"] 
Nach dem Login kopieren

Obwohl ich den internen Implementierungsmechanismus nicht kenne, vermute ich, dass seine Konstruktorfunktion wie folgt definiert sein könnte:

function Array(args) {
//如果,this不是Array的实例的话,
//说明不是通过new调用的,则在这里再重新调用
if( !this instanceof Array) {
return new Array(args);
}//后面是正常调用时的实现代码<br />//...<br />} 
Nach dem Login kopieren

Seltsam 2: Wenn nur ein Parameter an den Konstruktor übergeben wird, ist das Verhalten unvorhersehbar

Wenn nur ein Parameter übergeben wird und dieser Parameter eine Ganzzahl ist, wird ein Array erhalten, und die Länge entspricht diesem Parameter

var a = new Array(12);
console.log(a.length); //12
console.log(a); //[] 
Nach dem Login kopieren

Wenn Sie nur eine Gleitkommazahl übergeben, wird ein Fehler gemeldet:

var a = new Array(1.1); //Uncaught RangeError: Invalid array length(…) 
Nach dem Login kopieren

Die Übergabe einer Zeichenfolge funktioniert einwandfrei, wobei die Zeichenfolge das erste Element des Arrays ist:

var a = new Array("1.1");
console.log(a.length); //
console.log(a); //["1.1"] 
Nach dem Login kopieren

Aber um Mehrdeutigkeiten zu vermeiden, schlage ich vor, dass es am besten ist, das Array direkt in Form von Literalen zu erstellen:

var a = []; //空数组
var a = [1, 1, "bom"]; //三个元素
var a = [12]; //一个元素,并且元素是12 
Nach dem Login kopieren

Seltsam 3: Das Längenattribut des Arrays kann geändert (beschreibbar) werden

Wie folgt haben wir die Länge direkt von 2 auf 100 geändert und die Änderung war erfolgreich! ! !

var a = [1, 2, 3, 4];
console.log(a.length); //4
a.length = 100; 
console.log(a.length); //100 
Nach dem Login kopieren

Obwohl die Länge gleich 100 ist, existieren die Elemente a[4]-a[99] nicht, und wenn Sie ihre Werte anfordern, zum Beispiel in einer Schleife von 0 bis a.length, werden sie undefiniert .

Als nächstes ansehen:

var a = [1, 2, 3, 4];
a.length = 100;
console.log(a[10]); //undefined
console.log(99 in a); //false 
Nach dem Login kopieren

Etwas ähnlich dem folgenden Beispiel:

var a = [1, 2, 3, 4];
a[99] = undefined;
console.log(a.length); //100 
Nach dem Login kopieren

Der Unterschied besteht darin, dass a[99] hier existiert, weil wir es erstellt haben, auch wenn es einen undefinierten Wert hat. Es existieren jedoch nicht alle Elemente von a[4] bis a[98], wie folgt:

var a = [1, 2, 3, 4];
a[99] = undefined;
console.log(99 in a); //true;
console.log(98 in a); //false
console.log(a.length); //100 
Nach dem Login kopieren

Das Obige hat Ihnen einige seltsame Verhaltensweisen von JavaScript-Arrays mitgeteilt. Bitte verzeihen Sie mir, wenn der Artikel nicht gut geschrieben ist, danke!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So entfernen Sie Elemente aus dem es6-Array So entfernen Sie Elemente aus dem es6-Array Jan 11, 2023 pm 03:51 PM

Methode: 1. Verwenden Sie „shift()“, um das erste Element zu löschen. Die Syntax lautet „array.shift()“. 2. Verwenden Sie „pop()“, um das letzte Element zu löschen. Die Syntax lautet „array.pop()“. Verwenden Sie splice(), um Elemente an einer beliebigen Position zu löschen. Die Syntax lautet „array.splice(position, number)“. 4. Verwenden Sie „length“, um die letzten N Elemente zu löschen. Die Syntax lautet „array.length=original array length-N“. 5. Weisen Sie das leere Array „[ ]“ direkt zu, um das Element zu löschen. 6. Verwenden Sie „delete“, um ein Element am angegebenen Index zu löschen.

So konvertieren Sie einen String in ein Array in Javascript So konvertieren Sie einen String in ein Array in Javascript Nov 23, 2022 pm 07:28 PM

3 Konvertierungsmethoden: 1. Verwenden Sie split(), um einen bestimmten String in ein String-Array aufzuteilen. Die Syntax lautet „str.split (Trennzeichen, maximale Länge des Arrays)“. 2. Verwenden Sie den Erweiterungsoperator „...“, iterierbar String-Objekt, konvertieren Sie es in ein Zeichenarray, die Syntax „[...str]“ 3. Verwenden Sie Array.from(), um den String in ein Array zu konvertieren, die Syntax „Array.from(str)“.

Kann ein JS-Array in ein PHP-Array konvertiert werden? Kann ein JS-Array in ein PHP-Array konvertiert werden? Jun 02, 2023 am 10:06 AM

Das JS-Array kann in ein PHP-Array konvertiert werden: 1. Erstellen Sie eine PHP-Beispieldatei. 2. Verwenden Sie die Syntax „JSON.stringify()“, um das JS-Array in einen String im JSON-Format zu konvertieren. Verwenden Sie die Syntax „json_decode()“ „Konvertieren Sie die JSON-Formatzeichenfolge in ein PHP-Array. Der Parameter true wird hier hinzugefügt, was bedeutet, dass die JSON-Formatzeichenfolge in ein PHP-assoziatives Array konvertiert wird.

So erhalten Sie die Länge eines Arrays in js So erhalten Sie die Länge eines Arrays in js Jun 20, 2023 pm 05:33 PM

Die Länge eines Arrays in JS zu ermitteln ist sehr einfach. Jedes Array verfügt über eine Längeneigenschaft, die die maximale Länge des Arrays zurückgibt, d. h. sein Wert ist gleich dem maximalen Indexwert plus 1. Da numerische Indizes kleiner als 2^32-1 sein müssen, ist der Maximalwert des Längenattributs gleich 2^32-1. Der folgende Code definiert ein leeres Array und weist dann dem Element mit dem Index gleich 100 einen Wert zu. Anschließend gibt die Längeneigenschaft 101 zurück. Daher kann das Längenattribut nicht die tatsächliche Anzahl der Array-Elemente widerspiegeln.

Es gibt mehrere Möglichkeiten, ein Element aus einem js-Array zu löschen Es gibt mehrere Möglichkeiten, ein Element aus einem js-Array zu löschen Aug 02, 2023 am 10:09 AM

Es gibt 4 Möglichkeiten, ein Element aus einem js-Array zu löschen: 1. Verwenden Sie splice; 2. Verwenden Sie die Methode „pop“ und „shift“; 4. Verwenden Sie das Schlüsselwort „delete“.

JS-Array-Sortierung: So verwenden Sie die Methode sort() JS-Array-Sortierung: So verwenden Sie die Methode sort() Dec 27, 2023 pm 03:40 PM

Die Array.prototype.sort()-Methode von JavaScript wird zum Sortieren der Elemente eines Arrays verwendet. Diese Methode sortiert an Ort und Stelle, d. h. sie ändert das ursprüngliche Array, anstatt ein neues sortiertes Array zurückzugeben. Standardmäßig sortiert die Methode sort() Zeichenfolgen nach ihren Unicode-Codepunktwerten. Dies bedeutet, dass es hauptsächlich zum Sortieren von Zeichenfolgen und Zahlen und nicht zum Sortieren von Objekten oder anderen komplexen Datentypen verwendet wird.

Welche Methoden gibt es, um Duplikate aus JS-Arrays zu entfernen? Welche Methoden gibt es, um Duplikate aus JS-Arrays zu entfernen? Aug 09, 2023 pm 04:47 PM

Zu den Methoden zum Deduplizieren von JS-Arrays gehören die Verwendung von Set, die Verwendung von indexOf, die Verwendung von Includes, die Verwendung von Filter und die Verwendung von Reduce. 1. Verwenden Sie Set, das dadurch gekennzeichnet ist, dass die Elemente in der Menge nicht wiederholt werden. 2. Verwenden Sie indexOf, um die erste Indexposition des angegebenen Elements im Array zurückzugeben. 3. Verwenden Sie Includes, um festzustellen, ob bereits ein Element vorhanden ist 4. Verwenden Sie Filter, um Elemente zu filtern. 5. Verwenden Sie Reduzieren, um Elemente in einem Array usw. zu komprimieren.

So ermitteln Sie die Länge und Summe der Elemente eines Arrays in JavaScript So ermitteln Sie die Länge und Summe der Elemente eines Arrays in JavaScript Sep 20, 2022 pm 02:11 PM

In JavaScript können Sie das Längenattribut verwenden, um die Länge des Arrays abzurufen. Die Syntax lautet „array object.length“. Sie können die Funktion „reduce()“ oder „reducRight()“ verwenden, um die Summe der Elemente zu ermitteln. Die Syntax lautet „ arr.reduce(function f(pre,curr){ return pre+cur})“ oder „arr.reduceRight(function f(pre,curr){return pre+cur})“.

See all articles