Object类型
是一种引用类型,创建Object类型有2种,1、使用new运算符;2、字面量表示
//使用new 运算符创建Object
var box = new Object(); //new 方式,也可以省略new
box.name = '对象'; //创建属性字段
box.age = 28; //创建属性字段
//字面量
var box={
name:‘对象’,//属性可以使用字符串:‘name’
age:24,
run:function()//方法
{
return 'run';
}
};
在使用字面量声明Object 对象时,不会调用Object()构造函数(Firefox 除外)。使用delete 删除对象属性delete box.name;
Array类型
数组每个元素可以保存任何类型,数组的大小也是可以调整的。创建Array 类型有两种方式:第一种是new 运算符,第二种是字面量。
1.使用new 关键字创建数组
//可省去new
var box = new Array(); //创建了一个数组
var box = new Array(10); //创建一个包含10 个元素的数组
var box = new Array('xiaoming',28,'教师','beijing'); //创建一个数组并分配好了元素
2、使用字面量方式创建数组
var box = []; //创建一个空的数组
var box = ['xiaoming',28,'教师','beijing']; //创建包含元素的数组
var box = [1,2,]; //禁止这么做,IE 会识别3 个元素
var box = [,,,,,]; //同样,IE 的会有识别问题
和Object 一样,字面量的写法不会调用Array()构造函数。(Firefox 除外)。
方法
1、toLocalString()
、toString()
和valueOf()
,join()
对象和数组都有toLocalString()
、toString()
、valueOf()
方法.其中toString()
和valueOf()
无论重写了谁,都会返回相同的值。数组会将每个值进行字符串形式的拼接,以逗号隔开。
默认情况下,数组字符串都会以逗号隔开。如果使用join()方法,则可以使用不同的分隔符来构建这个字符串
var box=['aaas','fds','ff'];
console.log(box.join('$'));//aaas$fds$ff
2、push()、pop()栈方法(后进先出)直接改变原数组
var box=['aaas','fds','ff'];
console.log(box.push('书序'));//返回长度,和添加的元素
console.log(box.pop());//'书序'
3、push(),shift()队列方法(先进先出)
var box=['aaas','fds','ff'];
console.log(box.push('书序'));//返回长度4,和添加的元素
console.log(box.shift());//'aaas'
ECMAScript 还为数组提供了一个unshift()方法,它和shift()方法的功能完全相反。unshift()方法为数组的前端添加一个元素。
4、重排序方法(sort()、reverse())改变原数组
reverse()
,使数组逆序。
sort()
,使数组有序(递增或递减)
sort 方法的默认排序在数字排序上有些问题,因为数字排序和数字字符串排序的算法是一样的。我们必须修改这一特征,修改的方式,就是给sort(参数)方法传递一个函数参数。
var box = [1,2,7,4,5]; //数组
box.sort((a,b)=>{return a-b});//递增排序
console.log(box)//(5) [1, 2, 4, 5, 7]
5、操作方法 concat、slice、splice
-
concat()
方法可以基于当前数组创建一个新数组,连接作用,不改变原数组。
var box = [1,2,7,4,5]; //数组
var b=box.concat(['div']);
console.log(b)//(6) [1, 2, 7, 4, 5, "div"]
console.log(box)//(5) [1, 2, 7,4, 5]
-
slice(n,m)
方法可以基于当前数组获取指定区域并创建一个新数组.不改变原数组,不论n,m是正负,m都不取
var box = [1,2,7,4,5]; //数组
var a=box.slice();//复制数组
console.log(a)//(5) [1, 2, 7, 4, 5]
var b=box.slice(1);//获取下标1-最后的元素
console.log(b)//(4) [2, 7, 4, 5]
var bb=box.slice(1,4);//获取下标1-3的元素
console.log(bb)//(3) [2, 7, 4]
var bbb=box.slice(-1);//获取最后一个元素
console.log(bbb)//【5】
console.log(box)//(5) [1, 2, 7, 4, 5]
-
splice()
主要用途是向数组的中部插入元素。改变原数组
1、删除
var box = ['1', 28, '2']; //当前数组
var box2 = box.splice(0,2); //截取前两个元素,从下标0开始,删除2个元素
console.log(box2); //返回截取的元素,(2) ["1", 28]
console.log(box); //剩下的元素,["2"]
2、插入
var box = ['1', 28, '2']; //当前数组
var box2 = box.splice(1,0,'555'); //在下标1处插入’555‘
console.log(box2); //返回截取的元素[],空,因为没有删除
console.log(box); //剩下的元素,(4) ["1", "555", 28, "2"]
3、替换(删除后又插入)
var box = ['1', 28, '2']; //当前数组
var box2 = box.splice(1,1,'555'); //把下标1处元素替换成‘555’,相当于,删除后,又插入元素
console.log(box2); //返回截取的元素[28]
console.log(box); //,返回更改后的数组(3) ["1", "555", "2"]
参考资料:
JavaScript高级程序设计(第3版)
W3school
网友评论