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 相关文章推荐
[原创]网络复制内容时常用的正则+editplus
Nov 30 Javascript
javascript 客户端验证上传图片的大小(兼容IE和火狐)
Aug 15 Javascript
JS实现带缓冲效果打开、关闭、移动一个层的方法
May 09 Javascript
jQuery Easyui使用(二)之可折叠面板动态加载无效果的解决方法
Aug 17 Javascript
微信小程序 地图(map)实例详解
Nov 16 Javascript
谈谈JavaScript数组常用方法总结
Jan 24 Javascript
JS检测是否可以访问公网服务器功能代码
Jun 19 Javascript
vue 实现复制内容到粘贴板clipboard的方法
Mar 17 Javascript
vue-router 源码实现前端路由的两种方式
Jul 02 Javascript
解决微信小程序云开发中获取数据库的内容为空的方法
May 15 Javascript
JS实现网站楼层导航效果代码实例
Jun 16 Javascript
JS中循环遍历数组的四种方式总结
Jan 23 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 无限级分类学习参考之对ecshop无限级分类的解析 带详细注释
2010/03/23 PHP
PHP写杨辉三角实例代码
2011/07/17 PHP
CI框架入门示例之数据库取数据完整实现方法
2014/11/05 PHP
ThinkPHP内置jsonRPC的缺陷分析
2014/12/18 PHP
php类常量用法实例分析
2015/07/09 PHP
CI框架AR操作(数组形式)实现插入多条sql数据的方法
2016/05/18 PHP
Laravel使用memcached缓存对文章增删改查进行优化的方法
2016/10/08 PHP
php获取POST数据的三种方法实例详解
2016/12/20 PHP
Laravel 5.4因特殊字段太长导致migrations报错的解决
2017/10/22 PHP
thinkphp5 加载静态资源路径与常量的方法
2017/12/24 PHP
PHP的mysqli_sqlstate()函数讲解
2019/01/23 PHP
PHP实现的微信公众号扫码模拟登录功能示例
2019/05/30 PHP
Apache站点配置SSL强制跳转443
2021/03/09 Servers
jQuery把表单元素变为json对象
2013/11/06 Javascript
vue.js通过自定义指令实现数据拉取更新的实现方法
2016/10/18 Javascript
谈谈JS中常遇到的浏览器兼容问题和解决方法
2016/12/17 Javascript
微信小程序中显示html格式内容的方法
2017/04/25 Javascript
深入掌握 react的 setState的工作机制
2017/09/27 Javascript
javaScript产生随机数的用法小结
2018/04/21 Javascript
巧用python和libnmapd,提取Nmap扫描结果
2016/08/23 Python
疯狂上涨的Python 开发者应从2.x还是3.x着手?
2017/11/16 Python
python画柱状图--不同颜色并显示数值的方法
2018/12/13 Python
Python 实现大整数乘法算法的示例代码
2019/09/17 Python
获取python运行输出的数据并解析存为dataFrame实例
2020/07/07 Python
Keds官方网站:购买帆布运动鞋和经典皮鞋
2016/11/12 全球购物
adidas澳大利亚官方网站:adidas Australia
2018/04/15 全球购物
what is the difference between ext2 and ext3
2013/11/03 面试题
十八大报告观后感
2014/01/28 职场文书
捐赠仪式主持词
2014/03/19 职场文书
管理岗位竞聘演讲稿
2014/08/18 职场文书
酒店端午节活动方案
2014/08/26 职场文书
2014离婚协议书范文两篇
2014/09/15 职场文书
小区门卫的岗位职责
2014/09/26 职场文书
给老师的一封感谢信
2015/01/20 职场文书
搞笑的婚礼主持词
2015/06/29 职场文书
Spring this调用当前类方法无法拦截的示例代码
2022/03/20 Java/Android