引用类型(1)
来源:互联网 发布:武汉软件开发工资 编辑:程序博客网 时间:2024/05/17 01:18
最近在看javascript高级程序设计,于是想写点笔记,把重要的内容写下来,加深记忆,也便于以后查阅。
1、object类型
创建object的实例:
(1)new 运算符
var person = new object();
person.name = “anny”;
person.age = 20;
(2)对象字面量
var person = {
name : ”anny”,
age : 29
}
可以用 . 或者[ ]访问对象属性,方括号的优点是可以通过变量来访问属性,或者属性名有空格时,也可用放括号。
2、Ayyay类型
2.1.1创建Array的实例:
(1)构造函数方法
var colors = new Array(“red”,”blue”,”green”);
var colors = new Array(20);
var colors = new Array();
(2)数组字面量表示法
var colors = [“red”,”blue”,”green”];
var colors = [];//创建一个空数组
var colors[2] = “black” //修改第三项
length返回数组中元素的个数,length属性是可读写的,通过设置这个属性,可以从数组的末尾移除项或向数组添加项。最后一项的索引始终是length-1
检测数组
使用Array.isArray()方法,支持的浏览器有:ie9+,ff 4+,safari 5+,Opera 10.5+和chrome
2.1.2转换方法(把数组转换为字符串)
toLocaleString(), toString(), valueOf(),join()
前三种方法都是默认以逗号作为分隔符的,最后一种方法可以传入一个参数作为分隔符
2.1.3栈方法(LIFO)
push()方法可以接收任意数量的参数,把它们逐个添加到数组末尾,并返回修改后的数组长度。
pop()方法是从数组末尾移除最后一项,减少数组的length值,然后返回移除的项。
2.1.4队列方法(FIFO)
队列在列表的末端添加项,在前端删除项。所以结合以下两种方法可以对数组进行队列操作
shift()移除数组中的第一项并返回该项
push()
unshift()能在数组前端添加项,并且返回数组长度,同时使用unshift()和pop()方法可以熊相反方向来模仿队列。
ie7及更早的版本,其unshift()方法总是返回undefined().
2.1.5重排序方法
reverse()方法和sort()方法,返回值是经过排序的数组
reverse()方法反转数组项的顺序
sort()方法会调用每一项的toString()方法,然后以升序比较字符串。假如要比较的是数字,结果就不是我们想要的了,例如,数值5虽然小于数值10但是字符串5是大于字符串10的。
因此sort()可以接收一个函数作为参数,以下是一个比较简单的比较函数,可以让数值升序把排序
function compare(value1,value2){
if(value1 < value2){
return -1;
}else if(value1 > value2){
return 1;
} else {
return 0;
}
}
实现降序排序只要交换比较函数的返回值就行了。
对于数值类型或者其valueOf方法会返回数值类型的对象类型,可以使用一个更简单的比较函数。
function compare(value1,value2){
return value2 - value1;
}
2.1.6操作方法
concat()方法:先创建一个当前数组的副本,然后将参数添加到这个副本的末尾,最后返回新构建的数组。
slice()方法:接受一或两个参数,要返回的项的起始和结束位置(不包含结束的项,项是指数组的索引),如果只有一个参数,则返回开始到数组末尾
splice()方法:
(1)删除,指定两个参数,第一个表示要删除的第一项的位置,第二个参数表示要删除的项数。splice(0,2)会删除数组的前两项
(2)插入,指定三个参数,起始位置、0(要删除的项数,这里是指插入不删除,所以是0)、要插入的项(如果要插入多个,则可以添加第四第五个参数)
(3)替换,指定3个参数,起始位置、要删除的项数、要插入的任意数量的项。插入的项数不必与删除的项数相等。
2.1.7位置方法
indexOf(),lastIndexOf()这两个方法都接收两个参数,要查找的项和(可选的)表示查找起点位置的索引。其中indexOf()从数组开头开始向后查找,lastIndexOf则相反。这两个方法都返回要查找到项在数组中的索引。没有则返回-1.支持这两方法的浏览器:IE 9+,Firefox 2+,safari 3+,opera 9.5+,chrome
2.1.8迭代方法
ECMAScript 5位数组定义了5个迭代方法,每个方法都接收两个参数:要在每一项上面运行的函数和(可选的)运行该函数的作用域对象----影响this的值,传入这些方法中的函数会接受三个参数:数组项的值,该项在数组中的位置,和数组对象本身。
(1)every():对数组中的每一项运行给定函数,如果该函数对每一项都返回true,则返回true
(2)filter():对数组中的每一项运行给定函数,返回该数组会返回true的项组成的数组
(3)forEach():对数组中的每一项运行给定函数,没有返回值
(4)map():对数组中的每一项运行给定函数,返回对应项上运行传入函数的结果组成的数组
(5)some():对数组中的每一项运行给定函数,任意一项返回true,则返回true
eg:
var numbers = [12,3,4,5,4,3,2,1,];
var filterResult = numbers.filter(function(item,index,ayyay) {
return item>2;
});
alert(filterResult); //[3,4,5,4,3]
支持这些方法的浏览器有:IE 9+,Firefox 2+,Safari 3+,Opera 9.5+ chrome
2.1.8归并方法
reduce()和reduceRight(),前者会从第一项开始,逐个遍历到最后。后者则从数组最后一项开始遍历。这两个方法都接收两个参数,一个在每一项上调用的函数和(可选的)作为归并基础的初始值
给reduce()和reduceRight的函数接收4个参数:前一个值,当前值,项的索引和数组对象,这个函数返回的任何值都会作为第一个参数自动传给下一项。
eg求数组中所有项的和
var values = [1,2,3,4,5];
var sum = values.reduce(function(prev,cur,indx,array){
return prev + cur;
});
alert(sum); //15
支持的浏览器有:IE 9+,Firefox 3+,Safari 4+,Opera 10.5+ chrome
- C#引用类型(1)
- 引用类型(1)
- 引用类型
- 引用类型
- 引用类型
- 引用类型
- 引用类型
- 引用类型
- 引用类型
- 引用类型
- 引用类型
- 引用类型
- 引用类型
- 引用类型
- 引用类型
- 引用类型
- 引用类型
- 引用类型
- 使用单文档视图结构把Word嵌入到VC程序中
- HTTP状态码:400\500 错误代码
- [POJ] 1008 -> 玛雅历
- NYOJ1208 水题系列(DP)
- hdu 1251 统计难题 字典树
- 引用类型(1)
- android 鸡蛋在哪只鞋子小综合
- Beginners Level Course:File Permissions - chmod
- hiho 博弈——01(hiho 44周)
- Beginners Level Course:Day to Day with Linux
- 装饰者模式
- Beginners Level Course:File Permisions - chown
- poj3468 A Simple Problem with Integers
- 通过PHP将文件以流的方式发送客户端