很多高级编程语言都是面向对象的,比如C、C#和Java。面向对象语言的基本要求是什么?我们来谈谈一些面向对象的知识。面向对象语言需要为开发人员提供四种基本能力:
(1)封装:将相关信息(不考虑数据或方法)存储在对象中的能力(2)聚合:将一个对象存储在另一个对象中的能力(3)继承:从另一个类(或多个类)获取类的属性和方法的能力(4)多态性:编写可以以各种方式运行的函数或方法的能力,因为ECMAScript支持这些需求,所以可以。在ECMAScript中,您不能访问对象的物理表示,只能访问对象的引用。每次创建对象时,存储在变量中的是对象的引用,而不是对象本身。因此,JavaScript是一种基于面向对象的弱类型网络脚本语言。一、对象类型对象类型包含属性(也可以称为字段)和方法(也可以称为函数)。因此,在创建对象类型时,一定要重点说明。通常,有两种方法来创建对象类型的数量:(1)使用新的运算符。
var box=新对象();盒名='张三';//创建属性并初始化box.age=23box . run=running();//Create方法函数running(){ return '我是中国人!';} document.write(框“br/”的类型);document . write(box . name ' br/');document . write(box . age ' br/');document . write(box . run);输出:对象张三23我是中国人!(2)文字表述。
Var box={ name: '张三',age:23,run: function () {return '我是中国人!';} };document.write(框“br/”的类型);document . write(box . name ' br/');document . write(box . age ' br/');document . write(box . run());输出:同上(3)当我们传递多个参数时,需要按顺序输入。为了解决这个繁琐的过程,我们可以将多个参数打包成一个Object类型,并使用Object类型作为参数。我们还可以判断不存在的或者多余的参数,方便调用函数和传递参数。
功能框(obj){ if(obj.name!=undefined)document . write(obj . name ' br/');如果年龄!=undefined)document . write(obj . age ' br/');如果爱!=undefined)document . write(obj . love ' br/');} var obj={ name: '张三',年龄:23 };盒子(obj);输出:张三23二。数组类型ECMAScript中的数组与其他语言有很大的不同。JS中数组的元素可以是任何数据类型,数组的大小可以调整。从侧面反映出JS是弱类型语言。创建数组类型的数量有两种方法:(1)使用new运算符(new可以省略)。
var box=新数组(1,2,3,4);document.write(typrof框“br/”);//数组是对象类型文档。write(box);//输出从0开始的1,2,3,4个索引下标。
var box=新数组(1,2,3,4);document . write(box[0]box[1]box[2]box[3]);//输出1,2,3,4创建一个包含十个元素的数组。
var box=新数组(10);//默认情况下,创建数组必须是数字,必须是一个数字框[3]=4;//初始化数组中的元素框[5]=6;document.write(方框);//输出、4、6、(2)使用文字量创建数组。
var box=[1,2,3,4];document.write(typrof框“br/”);//output object document . write(box . length ' br/');//输出数组的长度为4 document . write(box);//输出1,2,3,4创建一个复杂的数组(可以是各种类型)。
Var box=[ {name:' Zhang San ',age:23 },//对象类型[1,2,3,4],//数组类型' JS ',//字符串类型25 25,//数字类型新数组(1,2,3)//数组类型];document.write(框“br/”的类型);document.write(框[0]。名称“br/”);document.write(框[3]);该页面的输出是:
三.对象中的方法(1)转换方法对象和数组都有tolocal string(),tostring()和valueOf()方法。无论谁重写ToString()和valueOf()都将返回相同的值。数组将把每个值拼接成一个字符串,用逗号分隔。
var box=[1,2,3,4];document.write(框“br/”);//输出1,2,3,4 document . write(box . tostring()' br/');//输出1,2,3,4 document . write(box . value of()' br/');//输出1,2,3,4 document . write(box . to local string());//输出1,2,3,4默认情况下,数组字符串用逗号分隔。如果使用join()方法,可以使用不同的分隔符来构建此字符串。
var box=[1,2,3,4];document.write(框“br/”);document.write(框“br/”的类型);document . write(box . join('-')' br/');document . write(box . join的类型('-'));该页面的输出是:
(2)堆栈方法ECMAScript数组提供了一种方法,使数组的行为类似于其他数据结构。也就是说,数组可以像堆栈一样,并且可以限制所需数据结构的插入和删除。堆栈是一种后进先出的数据结构,即新添加的元素最早被移除。而堆叠元素的插入和移除仅发生在堆叠的顶部。ECMAScript为数组提供push()和pop()方法。堆栈数组元素的图片:
push()方法可以接受任意数量的参数,将它们逐个添加到数组的末尾,并返回修改后的数组的长度。pop()方法从数组末尾移除最后一个元素,减少数组的长度值,然后返回移除的元素。
var box=[1,2,3,4];document.write(框“br/”);box.push(5,6);//在数组末尾添加元素document . write(box ' br/');document.write(box.push(7,8)' br/');//在数组末尾添加一个元素,添加元素后返回数组的长度document . write(box ' br/');box . pop();//删除元素文档。写在数组的末尾(框“br/”);document . write(box . pop()' br/');//移除数组末尾的元素,返回移除的元素document . write(box);输出:
(3)队列方法堆栈方法是后进先出,队列方法是先进先出。在数组的末尾添加元素,并从数组的前面移除元素。通过push()将元素添加到数组的末尾,然后通过shift()从数组的前面移除元素。运算数组元素图片。
var box=[1,2,3,4];document.write(框“br/”);box.push(5,6);//在数组末尾添加元素document . write(box ' br/');document.write(box.push(7,8)' br/');//在数组末尾添加一个元素,添加元素后返回数组的长度document . write(box ' br/');box . shift();//删除一个元素文档。在数组的前面写(框“br/”);document . write(box . shift()' br/');//从数组前面移除一个元素,返回移除的元素document . write(box);输出:
ECMAScript还为数组提供了unshift()方法,这与shift()方法完全相反。unshift()方法将一个元素添加到数组的前面。
var box=[1,2,3,4];document.write(框“br/”);box . unshift(0);//在数组前面添加一个元素document . write(box ' br/');document . write(box . unshift(-1)' br/');//在数组前添加一个元素,返回数组文档的长度. write(box ' br/');box . pop();//移除元素document.write(数组末尾的框“br/”);document . write(box . pop()' br/');//去掉数组末尾的元素,去掉元素后返回数组的长度document . write(box);输出:
(4)在重新排序方法数组中已经有两种直接排序的方法:reverse()和sort()。Reverse():反向排序。
var box=[1,2,3,4,5];box . reverse();document.write(框“br/”);//输出54321 document . write(box . reverse());//再次颠倒顺序,输出12345 sort():从小到大排序。
var box=[3,2,6,4,1,5];box . sort();document.write(框“br/”);//输出1,2,3,4,5,6 document . write(box . sort());//再次从小到大排序。如果我们有更多的实验,我们可能会再次遇到这样的问题。
var box=[0,15,10,1,5];box . sort();document.write(方框);//输出0,1,10,15,5从结果中我们可以看出,这与我们想要的结果是相反的。解决方案:
函数比较(值1,值2){ if(值1值2){ return-1;} else if(value 1 value 2){ return 1;} else { return 0;} } var box=[0,15,10,1,5];box.sort(比较);document.write(方框);//Output 0,1,5,10,15 (5) Operation方法JS为操作数组中已经包含的元素提供了很多方法。concat()方法可以基于当前数组创建一个新数组。slice()方法可以基于当前数组获取指定的区域元素,并创建一个新数组。splice()方法的主要目的是将元素插入数组的中间。a
var box=[1,2,3,4,5];var box 1=box . concat(6);//创建新数组并添加新元素document . write(box 1 ' br/');//输出1,2,3,4,5,6,document . write(box);//原始数组不改变b。
var box=[1,2,3,4,5];var box 1=box . slice(2);//取出索引2后的元素,形成新的数组文档. write(box 1 ' br/');//输出3,4,5 document . write(box);//原始数组不改变c。
var box=[1,2,3,4,5];var box1=box.slice(2,3);//取出索引在2到3之间的元素,组成新的数组文档. write(box 1 ' br/');//输出3 document . write(box);//原始数组不改变拼接中的删除功能。
var box=[1,2,3,4,5];var box1=box.splice(0,2);//截取从索引0开始的两个元素,形成一个新的数组文档. write(box 1 ' br/');//返回截取的元素1,2 document . write(box);//删除当前数组的截取元素,输出3,4,5拼接中的插入函数。
var box=[1,2,3,4,5];var box1=box.splice(4,0,6);//在索引4处插入了一个元素document . write(box 1 ' br/');//新数组为空,不截取document.write(box)元素;//在当前数组索引为4的位置的元素1,2,3,4,6,5拼接中插入替换函数。
var box=[1,2,3,4,5];var box1=box.splice(4,1,6);//索引为4的元素被替换,被替换的元素组成新的数组文档. write(box 1 ' br/');//返回一个新的数组5 document . write(box);//替换后,原来的数组1、2、3、4、6及以上是对JavaScript对象和数组的详细介绍,希望对大家的学习有所帮助。