您当前的位置: 首页 > 学无止境 > JS经典实例 网站首页JS经典实例
javascript学习笔记-对象、数组、排序
发布时间:2018-04-05 17:42:02编辑:雪饮阅读()
字面量方式创建对象时可以在字面量的语句块内部创建成员也可以传统方式(点语法)创建成员,输出对象的成员可以是以数组形式也可以是对象形式,用字面量方式创建对象没有执行Object的构造方法(火狐除外)用new Object方式创建对象则执行了Object的构造方法。
var box={
xyLove:function(){
alert('xyLoveDuMinJie');
}
};
box.duMinJieLove=function(){
alert('duMinJieLoveXy');
};
box.age=24;
box.xyLove();
box.duMinJieLove();
box['duMinJieLove']();
alert(box['age']);
alert(box.age);
向对象成员赋值可以赋值一个函数体也可以赋值一个函数的执行结果,根据赋值的不同,该成员的调用则也可以是以方法(带括号)调用,或者单纯的属性调用
function teat(){
return 123;
}
var box=new Object();
box.a=teat;
box.b=teat();
box.c=function (){
return 'c';
};
alert(box.a());
alert(box.b);
alert(box.c());
对象属性的删除
var box=new Object();
box.name='xyLoveDuMinJie';
alert(box.name);
delete box.name;
alert(box.name);
匿名对象
function box(obj){
alert(obj.name);
alert(obj.age);
alert(obj.love);
}
box({name:'雪饮',age:24,love:'杜敏捷'});
数组也是一种对象
var box=new Array();
alert(typeof box);
数组的几种创建方式与注意事项
//声明一个空数组
var box=new Array();
//声明并创建数组元素
var box2=new Array('雪饮','杜敏捷');
//创建指定元素个数的空数组
var box3=new Array(10);
//省略new关键字
var box4=Array();
//字面量方式创建 数组 (字面量方式创建数组不会调用Object构造函数,火狐除外)
var box5=[];
var box6=[1,2];
//字面量方式创建关联数组(直接输出一个数组只会将该数组中的索引元素输出,非索引元素不输出)
var box7=[];
box7['name']='雪饮';
box7['love']='杜敏捷';
box7[1]='test';
box5[0]='雪饮';
box4[0]='雪饮';
box3[0]='雪饮';
box3[1]='杜敏捷';
//用length可以强制元素量,多余实际元素的部分用逗号扩充
var box8=['雪饮','杜敏捷'];
box8.length=10;
//数组最多可包含4294967295个元素,超出即会发生异常。
//alert(box2);
//alert(box2[0]);
//alert(box3);
//alert(box3[1]);
//alert(box6.length);
//alert(box7);
alert(box8.length);
alert(box8);
对象或数组都具有toLocaleString()、toString()和valueOf()方法。其中toString()和valueOf()无论重写了谁,都会返回相同的值。数组会将每个值进行字符串形式的拼接,以逗号隔开哦。
var box=['雪饮',25,'杜敏捷',new Date()];
alert(box);
alert(box.toString());
alert(box.valueOf());
//如果是一个Date对象,则toLocaleString()将其对象转换为本地格式区域的时间字符串
alert(box.toLocaleString());
数组的索引元素输出的分隔符
默认情况下数组的索引元素输出的分隔符是逗号,用join方法可以改变默认输出的数组的索引元素的分隔符
var box=['雪饮',25,'杜敏捷',new Date()];
alert(box.join('|'));
数组的栈方法(后进先出)
var box=['雪饮',25,'杜敏捷'];
//向数组中添加元素,返回数组最新长度
var newc=box.push('杜姐姐');
//移除数组中最后一个入栈的元素,并返回该元素
var arrPop=box.pop();
alert(newc);
alert(box);
alert(arrPop);
数组的对列方法
var box=['雪饮',25,'杜敏捷'];
//向数组中添加元素,返回数组最新长度
var newc=box.push('杜姐姐');
//移除数组中最先入栈的元素,并返回该元素
var arrShift=box.shift();
//为数组元素最前面添加一个元素并返回最新数组长度
var newc2=box.unshift('雪饮大侠');
alert(newc);
alert(box);
alert(arrShift);
alert('new2:'+newc2);
数组的逆向排序
var box=[3,2,5,1,0,7,9,8];
//reverse方法执行后返回一个逆序后的数组,原数组也被逆序了
//注意:该方法逆序排序与元素值无关,只是将元素的下标逆序了
alert(box.reverse());
alert(box);
数组元素的大小排序
Sort方法的默认排序上有些问题,因为数字排序和数字字符串排序的算法是一样的。我们必须修改这一特征,修改的方式,就是给sort(参数)传递的一个函数的参数。如果要反向操作,即从大到小排序,只需要将写好的函数用于排序后的数组再次进行reverse()
function compare(value1,value2){
if(value1<value2){return -1;}
if(value1>value2){return 1;}
return 0;
}
var box=[10,1,5,0,15];
//sort方法执行后返回一个从小达到排序的数组,原数组也被排序
alert(box.sort(compare));
alert(box);
基于当前数组创建一个新数组
var box=["杜敏捷女侠"];
var box2=box.concat("雪饮大侠");
alert(box);
alert(box2);
基于当前数组获取指定区域元素并创建一个新数组
var box=["杜敏捷女侠","雪饮大侠","love","杜敏捷","雪饮"];
//从指定索引取到下一个指定索引
var box2=box.slice(1,4);
alert(box);
alert(box2);
从数组中删除元素并返回删除的元素
//从指定下标删除指定个数的元素,原数组的元素被删除了指定个数
var box2=box.splice(1,4);
alert(box);
alert(box2);
从数组中指定下标添加新元素
var box=["杜敏捷女侠","雪饮大侠","love","杜敏捷","雪饮"];
//从指定下标插入元素,当splice函数的第二个参数值为0时表示删除0个元素,第二个参数后面的参数就是要插入的新元素的值了,同理如果第二个参数为1,并且第二个参数后面只有一个参数则代表替换的意思。
var box2=box.splice(1,0,'杜敏捷love雪饮','雪饮love杜敏捷');
alert(box);
alert(box2);
关键字词:javascript,对象,数组,排序