1.数组
Array可以包含任何的数据类型
var arr = [1,5,7,6,9];//通过下标取值和赋值
arr[0] = 10;
-
长度
arr.length
注意:如果给arrlength赋值,数组大小就会发生变化,如果赋值过小,元素就会丢失
-
indexO.通过元素获得下标索引
arr.indexOf(2); 1
字符串的"1"和数字1 是不同的
-
slice() 截取Array的一部分,返回一个新的数组值,类似于substring
arr.slice(1,3); 5,7
-
push(),在Array数组的尾部压入元素,pop()弹出尾部元素
arr.push('a','b'); [1,5,7,6,9,"a","b"] arr.pop(); [1,5,7,6,9,"a"] arr.pop(); [1,5,7,6,9]
-
unshift():在Array数组的头部压入元素,shift()弹出头部元素
arr.unshift('a','b'); ["a","b",1,5,7,6,9] arr.shift(); ["b",1,5,7,6,9] arr.shift(); [1,5,7,6,9]
-
排序
[1,5,7,6,9] arr.sort(); [1,5,6,7,9]
-
元素反转
[1,5,6,7,9] arr.reverse(); [9,7,6,5,1]
-
拼接
arr.concat([2,3,4]); [9,7,6,5,1,2,3,4] arr; [9,7,6,5,1]
注意:concat()并没有修改数组,只是会返回一个新的数组
-
连接符join
打印拼接数组,使用特定的字符串连接
[9,7,6,5,1] arr.join("-"); 9-7-6-5-1
-
多维数组
arr = [[1,2],[3,4],["s","b"]]; arr[1][1]; 4
-
总结
数组:存储数据(如何存,如何去,方法都可以自己实现!)
2.对象
若干个键值对
var 对象名 = {
属性名 : 属性值,
属性名 : 属性值,
属性名 : 属性值
}
示例:
var person = {
name : "zhangsan",
age : 18,
score : 60,
sex : '男'
}
js中的对象,{…}表示一个对象,键值对描述属性xxx ; xxx,多个属性之间使用逗号隔开,最后一个属性不加逗号!
javaScript中的所有键都是字符串,值是任意对象!
-
对象赋值
person.name = "zhangsan" "zhangsan" person.name "zhangsan"
-
使用一个不存在的对象属性,不会报错!undefined
person.hh undefined
-
动态的删减属性,通过delete删除对象的属性
delete person.name true person {age: 18, score: 60, sex: "男"}
-
动态的添加,直接给新的属性添加值即可
person.id=1001 1001 person {age: 18, score: 60, sex: "男", id: 1001}
-
判断属性值是否在这个对象中!xxx in xxx!
"age" in person true //继承 "toString" in person true
-
判断一个属性是否是这个对象自身拥有的 : hasOwnProperty()
person.hasOwnProperty("age") true person.hasOwnProperty("toString") false
3.流程控制
-
if判断
var age = 3; if(age<3){//第一个判断 alert("哈哈!"); }else if(age<5){//第二个判断 alert("呜呜~") }else{//否则 alert("呵呵!") }
-
while循环,避免死循环
while(age<100){ age++; console.log(age); } do{ age++; console.log(age); }while(age<100)
-
for循环
for(let i = 0;i<100;i++){ console.log(i); }
-
forEach循环
var num = [1,45,6,4,5] //函数 age.forEach(function(value){ console.log(value); })
-
for…in
var num = [1,45,7,88,66,4]; //for(let index in object){} for (let key in num) { console.log(num[key]); }
4.Map和Set
ES6新特性
-
Map
'use strict' var map = new Map([["wuming",100],["zhangsan",90],["lisi",80]]); var name = map.get('wuming');//通过key获得value map.set("wangwu",80);//新增或修改 map.delete('lisi');//删除 console.log(name); document.write(name);
-
结果
100 map {"wuming" => 100, "zhangsan" => 90, "wangwu" => 80}
-
Set:
var set = new Set([1,1,5,1,3,3]);//set可以去重 set.add(2);//添加 set.delete(1);//删除 console.log(set.has(3));//判断是否包含某个元素
-
结果
set [1,5,3] set [1,5,3,2] set [5,3,2] true
5. iterator
-
遍历数组
//通过for of实现 var arr = [3,4,5]; for(let x of arr){ console.log(x); }
-
遍历Map
var map = new Map([["wuming",100],["zhangsan",90],["lisi",80]]); for(let x of map){ console.log(x); }
-
遍历Set
var set = new Set([5,6,7]); for(let x of set){ console.log(x); }