网站推广的工作内容,芜湖做网站的客户,成都网站开发团队,ftp网站怎么建立对象和数组 学习要点#xff1a;1.Object类型2.Array类型3.对象中的方法 什么是对象#xff0c;其实就是一种类型#xff0c;即引用类型。而对象的值就是引用类型的实例。在ECMAScript中引用类型是一种数据结构#xff0c;用于将数据和功能组织在一起。它也常被称作为类1.Object类型2.Array类型3.对象中的方法 什么是对象其实就是一种类型即引用类型。而对象的值就是引用类型的实例。在ECMAScript中引用类型是一种数据结构用于将数据和功能组织在一起。它也常被称作为类但ECMAScript中却没有这种东西。虽然ECMAScript是一门面向对象的语言却不具备传统面向对象语言所支持的类和接口等基本结构。 一、Object类型 到目前为止我们使用的引用类型最多的可能就是Object类型了。虽然Object的实例不具备多少功能但对于在应用程序中的存储和传输数据而言它确实时非常理想的选择。 创建Object类型有两种。一种是使用new运算符一种是字面量表示法。 1.使用new运算符创建Objectvar box new Object(); //new方式box.namejourney; //创建属性字段box.age23; //创建属性字段 2.new关键字可以省略var box Object(); //省略了new关键字 3.使用字面量方式创建Objectvar box { //字面量方式 name : journey, //创建属性字段 age:23} 4.属性字段也可以使用字符串形式var box { //也可以使用字符串 name:journey, age:23} 5.使用字面量及传统赋值方式var box {}; //字面量方式声明空的对象box.name journey; //传统赋值方式box.age 23; 6.两种属性输出方式alert(box.age); //点表示法输出alert(box[age]); //中括号表示法输出注意引号用数组的方式输出 PS在使用字面量声明Object对象时不会调用Object()构造函数(firefox除外)。 7.给对象创建方法var box { num : function(){ //对象中的方法 return 运行; }}alert(box num()); //调用对象中的方法如果没有圆括号会打印代码。有云括号 会打印返回值 //方法函数8.使用delete删除对象属性delete box.name; //删除属性 在实际开发过程中一般我们更加喜欢字面量的生命方式。因为它清晰语法代码少而且还给人一种封装的感觉。字面量也是向函数传递大量可选参数的首选方式。 function box(obj){ //参数是一个对象 if(obj.name ! undefined) alert(obj.name); //判断属性是否存在 if(obj.age ! undefined) alert(obj.age); } box({ //调用函数传递一个对象匿名对象 name : journey, age : 23}) 再例如function box(obj){ alert(obj.name); alert(obj.age);}var obj { name : journey, age : 23}box(obj); 二、Array类型 除了Object类型之外Array类型时ECMAScript最常用的类型。而且ECMAScript中的Array类型和其他语言中的数组有着很大的区别。虽然数组都是有序排列但ECMAScript中的数组每个元素可以保存任何类型。ECMAScript中数组的大小也是可以调整的。 创建Array类型有两种方式第一种时new运算符第二种时字面量。 1.使用new关键字创建数组 var box new Array(); //创建一个数组typeof box 返回object字符串数值属于对象类型var box new Array(10); //创建一个包含10个元素的数组必须是数字必须是1位var box new Array(journey , 23 , 男); //创建一个数组并分配好了元素 2.以上三种方法可以省略new关键字。var box Array(); //省略了new关键字 3.使用字面量方式创建数组var box []; //创建一个空的数组var box [journey , 23 , 男] //创建包含元素的数组var box [1,2,]; //禁止这么做IE会识别3个元素var box [........]; //同样IE的会有识别的问题 PS和Object一样字面量的写法不会调用Array()构造函数。firefox除外。 4.使用索引下标来读取数组的值alert(box[2]); //读取第三个元素box[2]学生; //修改第三个元素box[4]计算机编程; //修改第五个元素 var box [];box[name] journey;box[age] 23;alert(box[name]); //如果是字符串下标不会体现在数组上而要单独拎出来 var box [];box[0] journey;box[1] 23;alert(box); //如果是索引下标就会在数组上直接体现出来 5.使用length属性获取数组元素量alert(box.length) //获取元素的个数box.length 10; //强制元素的个数 以逗号扩展补充box[box.length]JS 技术; //通过length给数组增加一个元素 6.创建一个稍微复杂一点的数组var box [ { //第一个元素是一个对象 name : journey, age : 23, num : function(){ returnrun 了; } }, [马云,李彦宏,new Object()], //第二个元素是数组 江苏, //第三个元素是字符串 2525, //第四个元素是数值 new Array(1,2,3) //第五个元素是数组];alert(box); PS数组最多可以包含4294967295个元素超出即会发生异常。 三、对象中的方法 转换方法 对象或数组都具有toLocalString()、toString()和valueOf()方法其中toString()和valueOf()无论重写了谁都会返回相同的值。数组会将每个值进行字符串形式的拼接以逗号隔开。var box [journey , 23 , 男]; //字面量数组alert(box); //隐式调用了toString()alert(box.valueOf());alert(box.toString()); //和valueOf()返回一致alert(box.toLocalString()); //返回值和上面两种一致 默认情况下数组字符串都已逗号隔开如果使用join()方法则可以使用不同的分隔符来构建这个字符串。var box [journey , 23 , 计算机编程]; alert(box.join(|)); //journey | 23 | 计算机编程 返回string字符串 栈方法ECMAScript数组提供了一种让数组的行为类似于其他数据结构的方法。也就是说可以让数组像栈一样可以限制插入和删除项的数据结构。栈是一种数据结构后进先出也就是说最新添加的元素最早被移除。而栈中元素的插入或叫栈入和移除或叫弹出只发生在一个位置——栈的顶部。ECMAScript为数组专门提供了push()和pop()方法。 pop()方法可以接收任意数量的参数把它们逐个添加到数组的末尾并返回修改后数组的长度。而pop()方法则从数组末尾移除最后一个元素减少书租的length值然后返回移除的元素。 var box [journey , 23 , 计算机编程] //字面量声明alert(box.push(江苏)); //数组末尾添加一个元素并且返回长度alert(box); //查看数组box.pop(); //移除数组末尾元素并返回移除的元素alert(box); //查看元素 队列方法栈方法是后进先出而队列方法是先进先出。列队在数组的末端添加元素从数组的前端移除元素。通过push()向数组末端添加一个元素然后通过shift()方法从数组前端移除一个元素。 var box [journey , 23 , 计算机编程]; //字面量声明alert(box.push(江苏)); //数组末尾添加一个元素并且返回长度alert(box); //查看数组alert(box.shift()); //移除数组开头元素并返回移除的元素alert(box); //查看数组 ECMAScript还为数组提供了一个unshift()方法它和shift()方法的功能完全相反。unshift()方法为数组的前端添加一个元素。 var box [journey , 23 , 计算机编程]; //字面量声明alert(box.unshift(江苏,无锡)); //数组开头添加两个元素alert(box); //查看数组alert(box.pop()); //移除数组末尾元素并返回移除的元素alert(box); //查看数组 PSIE浏览器对unshift()方法总是返回undefined而不是数组的新长度。 重排序方法数组中已经存在两个可以直接用来排序的方法reverse()和sort()。 reverse() 逆向排序var box [1,2,3,4,5]; //数组alert(box.reverse()); //逆向排序方法返回排序后的数组alert(box); //原数组也被逆向排序了 sort()从小到大排序var box[4,2,1,5,3,8,9]; //数组alert(box.sort()); //从小到大排序返回排序后的数组alert(box); //原数组也被从小到大排序了 sort()方法的默认排序在数字排序上有些问题因为数字排序和数字字符串排序的算法是一样的。我们必须修改这一特征修改的方式就是给sort参数方法传递一个函数参数。这点可以参考手册说明。function compare(value1,value2){ //数字排序的函数参数 if(value1value2){ //小于返回负数 return -1; }else if(value1value2){ //大于返回整数 return 1; }else{ return 0; }}var box [0,1,5,10,15]; //验证数字字符串和数字的区别alert(box.sort(compare)); //传参 PS如果要反向操作即从大到小排序正负颠倒即可。当然如果要逆序用reverse()更加方便。 操作方法ECMAScript为操作已经包含在数组中的元素提供了很多方法。concat()方法可以基于当前数组创建一个新数组。slice()方法课余基于当前数组获取指定区域元素并创建一个新数组。 splice()主要用途数向数组的中部插入元素。 var box [journey , 23 , 计算机编程]; //当前数组var box2 box.concat(江苏); //创建新数组并添加新元素alert(box2); //输出新数组alert(box); //当前数组没有任何变化 var box [journey , 23 , 计算机编程,江苏]; //当前数组var box2 box.slice(1); //box.slice(1,3),2-4之间的元素alert(box2); //28计算机编程江苏alert(box); //当前数组var box3 box.slice(1,3); //这里不是从第一个位置取三个而是从第一个位置取到第三个alert(box3); splice中的删除功能var box [journey , 23 , 江苏]; //当前数组var box2 box.splice(0,2); //截取前两个元素这里表示从第0的位置取两个元素alert(box2); //返回截取的元素alert(box); //当前数组被截取的元素被删除 splice中的插入功能var box [journey , 23 , 江苏]; //当前数组var box2 box.splice(1,0,计算机编程,江苏); //没有截取但插入了两条alert(box2); //在第2个位置插入两条alert(box); //输出数组 splice中的替换功能var box [journey , 23 , 江苏]; //当前数组var box2 box.splice(1,1,100); //截取了第2条替换成100alert(box2); //输出截取的28alert(box); //输出数组转载于:https://www.cnblogs.com/journey-IT/p/5260193.html