引用类型
引用类型是一种数据结构,用于将数据和功能组织在一起。它也常被称为类,但这种称呼并不妥当。尽管 ECMAScript从技术上讲是一门面向对象的语言,但它不具备传统的面向对象语言所支持的类和接口等基本结构。引用类型有时候也被称为对象定义,因为它们描述的是一类对象所具有的属性和方法。
前面提到过,引用类型的值便是对象,在ECMAScript中,引用类型是一种数据结构,用于将数据和功能组织在一起,而对象则是某个特定引用类型的实例。
var a=new Object();
上面便声明了一个引用类型为Object的实例,并将这个实例存储到变量a中,也就是说这个变量实际是并不是包含了这个实例本身,而是指向这个实例的指针。
对于Object类型,常用对象字面量表示法来创建实例 既var a={name:"Nick",age:20}这样做的优点是给人封装的感觉。而对象的访问则是使用了点表示法或者方括号表示法。a.name等价于a["name"],注意此处的"name"是以字符串表示的。
对于Array类型,则可以使用数组字面量表示法。
对于Array类型,可以使用length来改变数组的长度。(从数组的末尾添加或者移除项)
检测数组的方法是Array.isArray(value)方法
转换方法:toString()转换成以“,”分割各项的一个字符串。valueOf(),返回的依旧是数组。toLocaleString()可以用下例实现。
var p1={ toString:function(){return "guo";}, toLocaleString:function(){return "yuzhe";} } var p2={ toString:function(){return "song";}, toLocaleString:function(){return "hap";} } var p=[p1,p2]; alert(p); //guo,song alert(p.toLocaleString()); //yuzhe,hap
可见 alert在输出前先调用了toString()方法,此外还有join()方法,用于以指定的符号返回成字符串 ,其默认的(不设置参数)为“,”。
栈方法:push()在末尾添加项,返回数组长度。pop()在末尾删除项,返回删除项。
队列方法:shift()溢出数组第一项,返回该项。unshift()在首段添加项,返回数组长度。
重排序方法(返回值为数组):
reverse()反转顺序。a[length-1]=a[0]
sort()升序排序法 默认的sort()是以ASCII排序的,而非我们认为的数字大小,所以比较大小需要这样使用
function compare(no1,no2){ if(no1<no2){ return -1;} else if(no1>no2){ return 1;} else{ return 0;} } var a=[1,2,3,4,6,5]; a.sort(compare); 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
<script> var a=[1,2,3,4]; var b=a.every(function(item,index,array){ return item>2; }); alert(b); //false </script>
归并方法:
reduce()从数字第一项开始遍历,reduceRight()从数组最后一项开始遍历
使用reduce()来求数组中的所有和
<script> var a=[1,2,3,4]; var b=a.reduce(function(prve,cur,index,array){ return prve+cur; }); alert(b); //10
第一次执行时,prev为1,cur为2 ,第二次执行时,prev为3,cur为3。
以上所述是小编给大家介绍的JavaScript入门教程之引用类型的相关内容,希望对大家有所帮助!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
- 模拟之声慢刻CD《摇滚五杰》[低速原抓WAV+CUE]
- 罗云熙《罗云熙「此刻 X 以光」演唱会Live合辑》[320K/MP3][184.22MB]
- 罗云熙《罗云熙「此刻 X 以光」演唱会Live合辑》[FLAC/分轨][978.14MB]
- 罗维《拉赫玛尼诺夫 第三钢琴协奏曲》[320K/MP3][99MB]
- 许巍-每一刻都是崭新的【wav】
- 【House风格】VA-2024-TheDeepCollective:MelodicHaze(FLAC)
- LuciaMicarelli《AnEveningWithLuciaMicarelli(Live)》[WAV分轨]
- 娜琏《NA》[320K/MP3][51.93MB]
- 娜琏《NA》[FLAC/分轨][293.28MB]
- (G)I-DLE《I SWAY》[320K/MP3][26.11MB]
- 黑鸭子2005-发烧[首版][WAV+CUE]
- 黄思婷2002-感动[豪记唱片][WAV+CUE]
- 黄乙玲1993-受伤的心·冷暖人生[台湾首版][WAV+CUE]
- (G)I-DLE《I SWAY》[FLAC/分轨][150.46MB]
- FTISLAND《Serious》[320K/MP3][82.33MB]