javaScript入门--引用类型
前面提到过,引用类型的值便是对象,在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笔记——引用类型之Object类型和Function类型
<JavaScript高级程序设计>中介绍的几种JavaScript的引用类型,本文只记了Object跟Function类型 Object类型 创建对象 var person = new ...
- JavaScript入门篇 编程练习
编程挑战 一.定义"改变颜色"的函数 提示: obj.style.color obj.style.backgroundColor 二.定义"改变宽高"的函数 提 ...
- JavaScript入门
本篇内容是学习慕课网相关课程后,总结出可能未来会忘记的内容 (一)JavaScript入门操作 1.js代码插入位置,以及执行顺序 <head> <script type=" ...
- 慕课网JavaScript入门篇课程笔记
1.js注释很重要 单行注释,在注释内容前加符号 “//”. <script type="text/javascript"> document.write(" ...
- JavaScript入门基础
JavaScript基本语法 1.运算符 运算符就是完成操作的一系列符号,它有七类: 赋值运算符(=,+=,-=,*=,/=,%=,<<=,>>=,|=,&=).算术运 ...
- JavaScript入门介绍(二)
JavaScript入门介绍 [函数] 函数function 是Javascript的基础模块单元,用于代码的复用.信息影藏和组合调用. function a(){} 函数对象Function Lit ...
- JavaScript入门介绍(一)
JavaScript入门介绍 [经常使用的调试工具][w3school.com.cn在线编辑] [Chrome浏览器 开发调试工具]按F121.代码后台输出调试:console.log("t ...
- 开心菜鸟系列----函数作用域(javascript入门篇)
1 <!DOCTYPE html> 2 <html> 3 <script src="./jquery-1.7.2.js"></ ...
- 开心菜鸟系列----变量的解读(javascript入门篇)
console.info( console.info(window['weiwu']) console.info(window. ...
随机推荐
- redis的hashes类型
redis hash 是一个string类型的field和value 的映射表.它的添加.删除操作都是O(1) . hash特别适合用于存储对象.相较于将对象的每个字段存成单个string类型 . 将 ...
- dedecms
http://www.duodede.com/free/ [free templte] http://www.xiuzhanwang.net/d
- libpcap/wwinpcap
winpcap(windows packet capture)是windows平台下一个免费,公共的网络访问系统.开发winpcap这个项目的目的在于为win32应用程序提供访问网络底层的能力.win ...
- mvc annotation-driven作用
会自动注册DefaultAnnotationHandlerMapping与AnnotationMethodHandlerAdapter两个bean,是spring MVC为Controller分发请求 ...
- poj 3501 Escape from Enemy Territory 二分+bfs
水题,不解释. #include<stdio.h> #include<math.h> #include<cstring> #include<algorithm ...
- list删除操作 java.util.ConcurrentModificationException
首先大家先看一段代码: public static void main(String[] args) { List<String> listStr = new ArrayList<S ...
- Volley使用指南第三回(来自developer.android)
继第二篇之后,再来Volley使用的教程的第三篇,有些翻译我是根据自己的理解,可能有错误的地方,还请多多包涵. 标准请求 这一回课将会告诉你Volley能够完成的3种请求类型 1.StringReqe ...
- Sysprep命令详解
本主题描述了 Windows(R) 8 版本的系统准备 (Sysprep) 工具的命令行语法. 如果你打算创建安装映像以部署到不同的计算机上,则必须运行带有 /generalize 选项的 Syspr ...
- linux自己带的apache重新启动
如果是linux自己带的apache的话就使用命令 service httpd start 启动 service httpd stop 关闭 service httpd restart 重新启动 如果 ...
- Codeforces Beta Round #85 (Div. 1 Only) A. Petya and Inequiations 贪心
A. Petya and Inequiations Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest ...