JavaScript入门教程之引用类型


Posted in Javascript onMay 04, 2016

引用类型

引用类型是一种数据结构,用于将数据和功能组织在一起。它也常被称为类,但这种称呼并不妥当。尽管 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入门教程之引用类型的相关内容,希望对大家有所帮助!

Javascript 相关文章推荐
千分位数字格式化(用逗号隔开 代码已做了修改 支持0-9位逗号隔开)的JS代码
Dec 05 Javascript
简单js代码实现selece二级联动(推荐)
Feb 18 Javascript
jquery库或JS文件在eclipse下报错问题解决方法
Apr 17 Javascript
jQuery仿天猫实现超炫的加入购物车
May 04 Javascript
JavaScript实现标题栏文字轮播效果代码
Oct 24 Javascript
使用jquery.form.js实现图片上传的方法
May 05 Javascript
jQuery的图片轮播插件PgwSlideshow使用详解
Aug 11 Javascript
浅谈JS继承_寄生式继承 &amp; 寄生组合式继承
Aug 16 Javascript
NODE.JS跨域问题的完美解决方案
Oct 20 Javascript
setTimeout学习小结
Feb 08 Javascript
jquery一键控制checkbox全选、反选或全不选
Oct 16 jQuery
JavaScript如何实现元素全排列实例代码
May 14 Javascript
javascript和jquery实现用户登录验证
May 04 #Javascript
基于Bootstrap使用jQuery实现简单可编辑表格
May 04 #Javascript
纯JS代码实现气泡效果
May 04 #Javascript
DWR中各种java方法的调用
May 04 #Javascript
js实现div在页面拖动效果
May 04 #Javascript
JS功能代码集锦
May 04 #Javascript
Markdown与Bootstrap相结合实现图片自适应属性
May 04 #Javascript
You might like
PHP设计模式之工厂模式与单例模式
2016/09/28 PHP
JavaScript 给汉字排序实例代码
2008/06/28 Javascript
jQuery each()小议
2010/03/18 Javascript
javascript中[]和{}对象使用介绍
2013/03/20 Javascript
让复选框只能选择一项的方法
2013/10/08 Javascript
js实现鼠标悬停图片上时滚动文字说明的方法
2015/02/17 Javascript
XML文件转化成NSData对象的方法
2015/08/12 Javascript
jQuery实现的多张图无缝滚动效果【测试可用】
2016/09/12 Javascript
JS中的数组转变成JSON格式字符串的方法
2017/05/09 Javascript
使用ionic(选项卡栏tab) icon(图标) ionic上拉菜单(ActionSheet) 实现通讯录界面切换实例代码
2017/10/20 Javascript
vue.js项目中实用的小技巧汇总
2017/11/29 Javascript
详解angularjs 学习之 scope作用域
2018/01/15 Javascript
Vue2.0 事件的广播与接收(观察者模式)
2018/03/14 Javascript
JavaScript监听触摸事件代码实例
2019/12/30 Javascript
[30:37]【全国守擂赛】第三周擂主赛 Dark Knight vs. Leopard Gaming
2020/05/04 DOTA
Python实现的读取电脑硬件信息功能示例
2018/05/30 Python
解决tensorflow1.x版本加载saver.restore目录报错的问题
2018/07/26 Python
Django 路由系统URLconf的使用
2018/10/11 Python
Python3爬虫学习之应对网站反爬虫机制的方法分析
2018/12/12 Python
Pycharm运行加载文本出现错误的解决方法
2019/06/27 Python
Python 画出来六维图
2019/07/26 Python
Python实现密码薄文件读写操作
2019/12/16 Python
Python基于argparse与ConfigParser库进行入参解析与ini parser
2021/02/02 Python
纯CSS和jQuery实现的在页面顶部显示的进度条效果2例(仿手机浏览器进度条效果)
2014/04/16 HTML / CSS
借助HTML5 Canvas来绘制三角形和矩形等多边形的方法
2016/03/14 HTML / CSS
英国知名奢侈品包包品牌:Milli Millu
2016/12/22 全球购物
英国最大的在线照明商店:Litecraft
2020/08/31 全球购物
问卷调查计划书
2014/01/10 职场文书
大学校园毕业自我鉴定
2014/01/15 职场文书
工程进度款催款函
2015/06/24 职场文书
医德医风学习心得体会
2016/01/25 职场文书
《吃水不忘挖井人》教学反思
2016/02/22 职场文书
幼儿园2016圣诞节活动总结
2016/03/31 职场文书
Python编程编写完善的命令行工具
2021/09/15 Python
yyds什么意思?90后已经听不懂00后讲话了……
2022/02/03 杂记
pytorch中的torch.nn.Conv2d()函数图文详解
2022/02/28 Python