Heim >Web-Frontend >js-Tutorial >Referenztypen zum Organisieren von JavaScript-Lernnotizen_Javascript-Kenntnissen
Referenztypen sind in JavaScript sehr wichtig. Ein Referenztyp ist eine Datenstruktur, die zum gemeinsamen Organisieren von Daten und Funktionen verwendet wird. Es beschreibt die Eigenschaften und Methoden eines Objekttyps. Object ist ein Basistyp, Array ist ein Array-Typ, Date ist ein Datumstyp, RegExp ist ein regulärer Ausdruckstyp usw.
Machen Sie sich JavaScript zu eigen
Mit der Popularität von AJAX hat sich der Wert von JavaScript verdoppelt. Jetzt ist JavaScript nicht mehr nur ein entbehrliches Hilfswerkzeug in der WEB-Entwicklung Als WEB-Backend-Entwicklungsprogrammierer müssen Sie JavaScript beherrschen. Zumindest in einigen relevanten Jobanforderungen können Sie die Worte „Kenntnisse mit JavaScript werden bevorzugt“ sehen. Ich möchte Ihnen sogar sagen, dass Sie dank eines anderen Entwicklungsmodells von Adobe AIR, nämlich der Entwicklung von AIR mit HTML-CSS-JavaScript, Desktop-Software mit JavaScript entwickeln können.
1.Objekttyp
1. Erstellen:
var dog = new Object();
Wird häufig zum Speichern und Übertragen von Daten verwendet. Beispiel: Speicher:
var person = new Object(); person.name = "Nicholas"; person.age = 29;
Der zweite Weg zum Erstellen: (Beim Erstellen kann der Attributname auch im Zeichenfolgenformat vorliegen, d. h. Sie können dem Attributnamen Anführungszeichen hinzufügen.)
var person = { name : "Nicholas", age : 29 };
2. Holen Sie sich den Attributwert: person["name"] oder: person.name;
2.Array-Typ
Dasselbe Array kann jede Art von Daten speichern (ein Sammelsurium).
1. Das Array kann dynamisch angepasst werden (fügen Sie weitere Daten hinzu, die Länge wächst von selbst, es ist nicht tot).
2. Erstellen:
var stars=new Array();//方式1 var stars=new Array(20);//方式2 var stars=new Array("周杰伦","林俊杰","孙燕姿");//方式3 var stars=Array(20);//方式4 var stars=["周杰伦","孙燕姿","林俊杰"];//方式6
3. Beispiel für eine dynamische Anpassung:
var stars=["周杰伦","林俊杰","孙燕姿"]; stars[1]="JJ";//动态改变(把林俊杰变为JJ) stars[3]="皮裤汪";//动态增长(加了一个长度) stars.length=1;//动态强制缩减(林俊杰、孙燕姿、皮裤汪强制移除,长度变为1)
4. Array erkennen: Array.isArray(value);
5. Verwenden Sie join(), um das Array in eine durch Trennzeichen getrennte Zeichenfolge umzuwandeln:
var stars = ["周杰伦", "王尼玛", "张全蛋"]; alert(stars .join(",")); //周杰伦,王尼玛,张全蛋 alert(stars .join("-")); //周杰伦-王尼玛-张全蛋
6. Sie können Arrays wie Stapel verwenden (pop() out, push() in).
7. Arrays können wie Warteschlangen verwendet werden. (Kombination von Shift() und Push()):
var stars = new Array(); //create an array var count = colors.push("周杰伦", "王尼玛"); //push two items alert(count); //2 count = stars .push("张全蛋"); //push another item on alert(count); //3 var item = colors.shift(); //get the first item alert(item); //周杰伦 alert(colors.length); //2 /**所谓栈变队列,其实就是把栈颠倒过来再拉取*/
8. Sortieren.
1.reverse()Kehrt die Reihenfolge des Arrays um (gibt das sortierte Array zurück)
2.sort()Sortieren von klein nach groß. Es wird jedoch nach Zeichenfolgen und nicht nach Zahlen sortiert: (gibt das sortierte Array zurück).
var values = [, , , , ]; values.sort(); alert(values); //,,,,
Um wie erwartet zu sortieren, können Sie sort() eine Vergleichsfunktion als Parameter hinzufügen:
function compare(value, value) { if (value < value) { return -; } else if (value > value) { return ; } else { return ; } } var values = [, , , , ]; values.sort(compare); alert(values); //,,,,
Vereinfachte Version der Vergleichsfunktion (bei der Sortierung ist es nur wichtig, ob sie eine positive Zahl, eine negative Zahl oder 0 zurückgibt):
function compare(value1,value2){ return value2 - value1; }
9. Operationen an Arrays: Verbinden, Schneiden, Spleißen.
1. Verbindung : concat verwenden, Speicher: concat-->concatenate: Verbindung, Kette.
Beispiel:
var stars = ["周杰伦", "王尼玛", "张全蛋"]; var stars = stars .concat("太子妃", ["花千骨", "梅长苏"]); alert(stars); //周杰伦,王尼玛,张全蛋 alert(stars); //周杰伦,王尼玛,张全蛋,太子妃,花千骨,梅长苏
2. Scheibe . Verwenden Sie Slice, Speicher: Slice-Übersetzung: Slice. Beispiel:
var stars = ["梅长苏", "誉王", "靖王", "霓凰", "飞流"]; var stars= stars.slice(); var stars= stars.slice(,); alert(stars); //誉王,靖王,霓凰,飞流(从第一个位置开始切) alert(stars); //誉王,靖王,霓凰(从第个位置切到第个位置,表示半封闭,不包含)
3. Spleißen. spleißen. Kraftvoll. Kann gelöscht, eingefügt, ersetzt werden.
1.Eine beliebige Anzahl von Elementen löschen: Zum Beispiel: splice(0,2), das 0. und 1. Element löschen (halbgeschlossenes Intervall) (die gelöschten Elemente zurückgeben).
2.Fügen Sie eine beliebige Anzahl von Elementen an der angegebenen Position ein: zum Beispiel: splice(2,0,"Jay Chou","王尼马"), fügen Sie Jay Chou und Wang NIMA ab ein die 2. Position Zwei Elemente.
3.Fügen Sie beliebig viele Elemente an der angegebenen Position ein und löschen Sie gleichzeitig beliebig viele Elemente. Beispiel: splice(2,1,„Jay Chou“, „Wang Nima“), löschen Sie ein Element an der zweiten Position und beginnen Sie dann mit dem Einfügen von zwei Elementen, Jay Chou und Wang Nima.
10. Positionsmethode: indexOf, lastIndexOf;
11. Iterative Methode: Unterteilt in: Übergabe nur, wenn alle qualifiziert sind, Übergabe, wenn einer qualifiziert ist, Filterung einiger Reste, Eins-zu-Eins-Zuordnung, iterative Abfrage und Reduktion.
1. Nur bestehen, wenn alle qualifiziert sind:
var numbers = [1,2,3,4,5,4,3,2,1]; var everyResult = numbers.every(function(item, index, array){ return (item > 2); }); alert(everyResult); //false
Im obigen Beispiel wird true nur zurückgegeben, wenn jedes Element größer als 2 ist.
2. Bestehen Sie, wenn Sie eines bestehen:
var numbers = [1,2,3,4,5,4,3,2,1]; var someResult = numbers.some(function(item, index, array){ return (item > 2); }); alert(someResult); //true
Wenn im obigen Beispiel eins größer als 2 ist, wird true zurückgegeben.
3. Filtern Sie einen Teil des Rückstands:
var numbers = [1,2,3,4,5,4,3,2,1]; var filterResult = numbers.filter(function(item, index, array){ return (item > 2); }); alert(filterResult); //[3,4,5,4,3]
Im obigen Beispiel werden alle Werte größer als 2 herausgefiltert.
4. Eins-zu-eins-Zuordnung:
var numbers = [1,2,3,4,5,4,3,2,1]; var mapResult = numbers.map(function(item, index, array){ return item * 2; }); alert(mapResult); //[2,4,6,8,10,8,6,4,2]
Im obigen Beispiel multiplizieren Sie jeden Term mit 2.
5. Iteration: Für jedes verwenden.
6. Reduzieren: reduzieren.
var values = [1,2,3,4,5]; var sum = values.reduce(function(prev, cur, index, array){ return prev + cur; }); alert(sum);//15
累加求和返回,5项缩为1项。
3.RegExp类型
1.var expression=/ pattern / flags;
2.flags分三种:g(global全局模式,应用于所有字符串)、i(case-insensive,忽略字母大小写)、m(multiline,多行模式,一行检验完了接着下一行。)。举例:
/**匹配字符串中所有'at'的实例*/ var pattern1=/at/g; /**匹配第一个'bat'或'cat',不分大小写*/ var pattern2 =/[bc]at/i; /**匹配所有以'at'结尾的3个字符组合,不分大小写*/ var pattern3=/.at/gi;
3.模式中所有的元字符必须转义,元字符:( { [ \ ^ $ | ) ? * + . ] }
4.Function类型
1.每个函数都是Function类型的实例,而且与其他引用类型一样,都有属性和方法。
2.函数的两种定义方法:
方法1:
function sum(a,b){ return a + b; }
方法2:
var sum=function(a,b){ return a + b; }
3.函数没有重载。
5.Boolean、Number、String:基本包装类型
var a="Jay Chou is a superstar"; var b=a.substring(0,8);
上例中,a是基本类型,但是a可以调用substring方法,是因为,后台自动完成a的包装操作,创建String类型的一个实例。Boolean,Number也类似。
6.单体内置对象,不需要实例化,直接使用,如:Math,Global。
1.所有全局作用域中定义的函数、变量,都是Global对象的方法,比如:parseInt,isNaN等。
2.eval()方法也是Global对象的方法,它负责解析javascript。
3.Math对象是保存数学公式和相关信息的。它有很多方法, 如:min求最小值,max求最大值,ceil()向上取整,floor向下取整,round四舍五入,random取随机数。
ps:引用类型理解:变量的交换等于把现有一间店的钥匙(变量引用地址)复制一把给了另外一个老板,此时两个老板同时管理一间店,两个老板的行为都有可能对一间店的运营造成影响。
引用类型例子
function chainStore() { var store1=['Nike China']; var store2=store1; alert(store2[0]); //Nike China store1[0]='Nike U.S.A.'; alert(store2[0]); //Nike U.S.A. } chainStore(); //在上面的代码中,store2只进行了一次赋值,理论上它的值已定,但后面通过改写store1的值,发现store2的值也发生了改变,这正是引用类型的特征,也是我们要注意的地方