JavaScript入门教程之引用类型

发布时间:2022-10-31 00:23:01

引用类型是一种数据结构,用于将数据和功能组织在一起。它也常被称为类,但这种称呼并不妥当。尽管ECMAScript从技术上讲是一门面向对象的语言,但它不具备传统的面向对象语言所支持的类和接口等基本结构。引用类型有时候也被称为对象定义,因为它们描述的是一类对象所具有的属*和方法。

前面提到过,引用类型的值便是对象,在ECMAScript中,引用类型是一种数据结构,用于将数据和功能组织在一起,而对象则是某个特定引用类型的实例。

vara=newObject();

上面便声明了一个引用类型为Object的实例,并将这个实例存储到变量a中,也就是说这个变量实际是并不是包含了这个实例本身,而是指向这个实例的指针。

对于Object类型,常用对象字面量表示法来创建实例既vara={name:"Nick",age:20}这样做的优点是给人封装的感觉。而对象的访问则是使用了点表示法或者方括号表示法。a.name等价于a["name"],注意此处的"name"是以字符串表示的。

对于Array类型,则可以使用数组字面量表示法。

对于Array类型,可以使用length来改变数组的长度。(从数组的末尾添加或者移除项)

检测数组的方法是Array.isArray(value)方法

转换方法:toString()转换成以“,”分割各项的一个字符串。valueOf(),返回的依旧是数组。toLocaleString()可以用下例实现。

varp1={toString:function(){return"guo";},toLocaleString:function(){return"yuzhe";}}varp2={toString:function(){return"song";},toLocaleString:function(){return"hap";}}varp=[p1,p2];alert(p);//guo,songalert(p.toLocaleString());//yuzhe,hap

可见alert在输出前先调用了toString()方法,此外还有join()方法,用于以指定的符号返回成字符串,其默认的(不设置参数)为“,”。

栈方法:push()在末尾添加项,返回数组长度。pop()在末尾删除项,返回删除项。

队列方法:shift()溢出数组第一项,返回该项。unshift()在首段添加项,返回数组长度。

重排序方法(返回值为数组):

reverse()反转顺序。a[length-1]=a[0]

sort()升序排序法默认的sort()是以ASCII排序的,而非我们认为的数字大小,所以比较大小需要这样使用

functionpare(no1,no2){if(no1no2){return1;}else{return0;}}vara=[1,2,3,4,6,5];a.sort(pare);alert(a)

若想产生降序效果,只需反转if语句。

*作方法:

concat()创建了一个副本,对原数组无影响,作用是添加接受的参数到数组的末尾。

slice()创建一个副本,接受1或者2个参数(返回项的起始和结束位置,不包含结束位置),在只有一个参数的情况下,返回从指定位置到结尾所有项。如果参数为负数,则结果为length+arguments,若结束位置小于起始位置,则返回空数组。

splice():1.删除方法--指定两个参数,删除的第一项的位置和删除的项数。

2.*方法--指定三个参数,起始位置,0(要删除的个数),要*的项。

3.替换方法--指定三个参数,起始位置,删除的个数,要*的项

*/替换的位置是起始位置。

位置方法:

indexOf()返回要查找的项的数组下表,没有则返回-1.参数:要查找的项和(可选的)查找起点位置的索引(下标)。

lastIndexOf()是indexOf()的逆序。

迭代方法:

2个参数:要运行的函数和(可选的)的作用域,传入这些方法中的函数需要有三个参数(item(数组项的值),index(该项的位置),array(数组对象本身)).

every()对数组中的每一项运行给定函数,每一项都返回ture则返回true

filter()返回会返回true的项组成的数组

forEach()对每一项运行给定函数,无返回值

map()返回每次函数执行结果组成的数组

some()若有一项为true,则返回true

vara=[1,2,3,4];varb=a.every(function(item,index,array){returnitem>2;});alert(b);//false

归并方法:

reduce()从数字第一项开始遍历,reduceRight()从数组最后一项开始遍历

使用reduce()来求数组中的所有和

vara=[1,2,3,4];varb=a.reduce(function(prve,cur,index,array){returnprve+cur;});alert(b);//10第一次执行时,prev为1,cur为2,第二次执行时,prev为3,cur为3。以上所述是小编给大家介绍的JavaScript入门教程之引用类型的相关内容,希望对大家有所帮助!

看了JavaScript入门教程之引用类型还看了:
  • JavaScript入门教程

    鉴于安全*的需要,该对象收到很多限制,现在只剩下下列属*和方法。History历史对象有length这个属*,列出历史的项数。JavaScript所能管到的历史被限制在用浏览器的“前进”“后退”键可以去到的范围。本属*返回的是“前进”和“后...

  • 浅析JavaScript基本类型与引用类型

    两种类型:ECMAScript变量包含两种不同类型的值:基本类型值、引用类型值;基本类型值:指的是保存在栈内存中的简单数据段;引用类型值:指的是那些保存在堆内存中的对象,意思是,变量中保存的实际上只是一个指针,这个指针指向内存中的另一个位置...

  • c#引用类型和值类型

    C#中,变量是值还是引用仅取决于其数据类型。下面小编为大家介绍c#引用类型和值类型,希望能帮到大家!CLR支持两种类型:引用类型和值类型。引用类型总是从托管堆上分配的。c#中的New*作符返回对象的内存地址。引用对象的注意点:1、内存从托管...

  • JavaScript中常用的函数类型

    网页中的java代码需要写在JavaScript中,里面部分少不了函数,介绍一下JavaScript中常用的函数类型。1、可变函数functionshow(){alert("第一个。。。");}functionshow(str){alert...

  • 分析JavaScript类型系统之Math

    开门必读math和其他对象不同,Math对象是一个静态对象,而不是构造函数。实际上,Math只是一个由Javascript设置的对象命名空间,用于存储数学函数属*Math.E自然对数的底数,即常量e的值(约等于2.718)Math.PI派的...