15.[JavaScript]第8章对象和数组[上,下, 中]
本章学习导航
对象包含哪些元素?
1. 属性(字段)
2.方法(函数)
对象的创建方法
1.方法一(这里的new可以省略)
<script type="text/javascript"> var box = new Object(); box.name = 'luo'; box.age = 32; alert(box.age); </script>
2.方法二(字面量方法创建的对象)
<script type="text/javascript"> var box = { name:'luo'; age:27; }; alert(box.name); </script>
说明: 属性可以用英文状态下的引号包起来。
两种属性的输出
alert(boxmsg.age);
alert(boxmsg['age']);
方法的创建及输出
// 第一种 function objrun(){ return '23'; } var box = new Object(); box.name = '罗'; box.age = 23; box.run = objrun(); alert(box.run); // 第二种 var box ={ name : 'lee', age : 32, run : function (){ //匿名函数 return '23'; } }; alert(box.run()); // 如果没有run后的括号,会把代码打印出来
使用delete删除对象属性
delete.box.name;
//还可以只传一个参数为对象
function box (obj){
if(obj.name != undefined)alert(obj.name);
if(obj.name != undefined)alert(obj.age);
if(obj.name != undefined)alert(obj.love);
if(obj.name != undefined)alert(obj.height);
}
var b={
name : 'lee',
age : 23
};
box (b);
-----------------------------------------------------------------------------------------------------
1. 数组
var a = new Array(); //声明一个空数组,创建一个数组
alert(a); // 数组属于对象类型
var box = new Array('罗',33,'浙江'); // 创建 一个数组,有三个元素
alert(box);
alert(box[0]); // 数组是 有一个下标的
var box = new Array(10); // 创建 一个包含10元素的数组
box[3] = 'lei';
alert(box[3]);
alert(box);
//2. 创建数组时,可以省略关键字
var a = Array();
alert(typeof a);
//3. 字面量的方法创建数组
var box = [];
var box = ['luo',23,'学生','浙江'];
var box = [1,2,];//额外的逗号会让IE 获取到
var box = [,,,,]; //这个写法也不对
4. 求组数长度 的函数
var box = [1,2,3,4];
alert(box.length);
5. 可以增加数组元素,修改,和删除
var box =['aaa',23,'bbbb'];
box[1] = 100;
box[2] ='ccccc';
box[3] = '计算机';
box[1].delete;
alert(box);
var box = [];
box['name'] = 'lei';
box['age'] = 32;
alert(box['name']); // 如果 不字符串的下标不能用box 直接输出,要用box['name']的形式
var box = [];
box[0] = 'lei';
box[1] = 23;
alert(box); // 如果是数字下标就可以
6. 如果强制了元素量,以逗号扩展补充。
var box = ['le',23,'ss'];
box.lenght = 10;
alert(box.lenght);
alert(box);
7.
var box = ['lee',32,'浙江'];
box[6] = '江苏';
alert(box);
var box = ['lee',32,'浙江'];
box[box.length] = '江苏'; // 这样写中间就不会有逗号了
alert(box);
8 . 还可以创建一个复杂的数组。
var box = [
{name : 'lee' , age : 23 , address : '浙江'},
23+23,
[2,3,3,new Array()],
'这要学习计算机编程'
];
alert(box);
*/
1. 对象 ,数组中的方法
对象或数组都具有toLocaleString(),toString和valueOf()方法,其中toString和
valueOf()无论重写了谁,都会返回相同的值,数组会讲每个值进行字符串的拼接,以逗号
隔开。
var box = ['lee ',33,'计算机编程',new Date()]; //字面量数组
alert(box); //隐式调用了toString()方法
alert(box.toString()); // 和valueOf()返回一相
alert(box.toLocaleString()); //返回值和上面两种一样
2. 默认情况下,数组字符串都会以逗隔开,如果使用join(),则可以用不同的
分隔符来隔开。
var box = ['',33,'计算机编程'];
alert(box.join('|')); // 方法运行后,返回按|分割的字符串
alert(box); //原数组没有任何变化,还是Object
3. 数组元素的push() 方法 ,和pop()方法
var box = ['lele',32,'计算机编程'];
alert(box);
alert(box.push('江苏','地方')); // 在数组后增加N个元素,返回数组的长度
alert(box);
var box = ['lele',32,'计算机编程'];
alert(box);
alert(box.pop()); //移出数组末尾的一个元素,并返回移出的元素。
alert(box);
var box = ['lele',32,'计算机编程'];
alert(box.shift()); //移出数组元素开始的一个元素,批返回移出的元素
alert(box);
var box = ['lele',32,'计算机编程'];
alert(box.unshift('灌输','sss')); //数组前端添加N个元素,返回最新的长度。
alert(box);
说明 : IE浏览器对unshif()方法总是返回undefined而不是数组的新长度
4. reverse()方法
var box = [1,2,3,4,5];
alert(box.reverse()); //返回它的逆序数组
alert(box); //原数组也改变了,说明是对它的引用进行操作
5. sort()方法的应用
function compare2(value1, value2) { //数字排序的函数参数
if (value1 < value2) { //小于,返回负数
return -1;
} else if (value1 > value2) { //大于,返回正数
return 1;
} else { //其他,返回0
return 0;
}}
var box = [0,1,5,10,15]; //验证数字字符串,和数字的区别
alert(box.sort(compare2));
6. concat方法原数组不受影响 ,连接成一个新的数组
var box = ['sd',23];
box1 = box.concat('计算机');
alert(box1);
alert(box);
7. slice方法的应用
var box = ['111',32,'sd'];
alert(box.slice(1,3)); //是从第0个位置开始取,取到第三个位置(但不包括第三个元素)
8. slipce()方法的应用
var box = ['1111',32,'sd'];
alert(box.splice(1,2)); //这里表示从数组的下标1开始的位置取2个
1.该方法有删除功能
var box = ['李炎恢', 28, '盐城']; //当前数组
var box2 = box.splice(0,2); //截取前两个元素
alert(box2); //返回截取的元素
alert(box); //当前数组被截取的元素被删除
2. 该方法有插入功能。
var box = ['浙江',32,'上海'];
var box2= box.splice(1,0,'我','家') //从数组的下标1开始取出0个元素,并在
//下标位置为1的地方插入两个元素。
alert(box);
3. 该方法有替换功能
var box = ['浙江',32,'上海'];
var box2= box.splice(1,1,12) //从数组的下标1开始取出0个元素,并在
//下标位置为1的地方插入两个元素。
alert(box);