JavaScript高级程序设计 第五章 — 引用类型
来源:互联网 发布:天泽网络 编辑:程序博客网 时间:2024/05/17 02:04
- JavaScript高级程序设计 第五章 引用类型
- Object类型
- Array类型
- 转换方法
- join方法
- 栈方法 push方法 和 pop方法
- 队列方法 shift方法 和 push方法
- 重排序方法 reverse方法 和 sort方法
- 操作方法 concat方法 sort方法 和 splice方法
- 转换方法
JavaScript高级程序设计 第五章 — 引用类型
引用类型的值(对象)是引用类型的一个实例。引用类型是一种数据结构,用于将数据和功能组织在一起,也称类。
引用类型也被称为对象定义,是一类对象所具有的属性和方法。
对象是某个特定引用类型的实例。新对象用 new 操作符后跟一个构建函数。
Object类型
new操作符后跟构建函数:
var person = new Object();person.name = "Nicholas";person.age = 29 ;
另一种方式 是对象字面量:
var person = { name : "Nicholas" ; age : 29 ;}
一般来说,访问对象属性时使用的是点表示法,JavaScript还可以用方括号表示法来访问对象属性:
alert(person.name); //"Nicholas"alert(person["name"]); //"Nicholas"
Array类型
创建数组的方式:
var colors = new Array();var colors = new Array(20); //创建length值为20的数组
数组字面量表示法:
var colors = ["red","blue","green"]; //多个数组项用逗号隔开
数组的最后一项索引始终是 length-1,因此下个新项的位置就是 length。
转换方法
所有对象都具有 toLocalString()、toString()、valueOf()方法
数组的 toString()方法 返回由数组中每个值的字符串形式拼接成的一个以逗号分隔的字符串。
数组的 valueOf()方法 返回的还是数组
var colors = ["red","blue","green"];alert(colors.toString()); //red,blue,greenalert(colors.valueOf()); //red,blue,greenalert(colors); //red,blue,green
数组继承的 toLocalString()、toString()、valueOf()方法,在默认情况下都会以逗号分隔的字符串形式返回数组项。
join()方法
join()方法 ,可以使用不同的分隔符来构建分隔数组的字符串:
var colors = ["red","green","blue"];alert(colors.join(",")); // red,green,bluealert(colors.join("||")); // red||green||blue
栈方法 — push()方法 和 pop()方法
ECMAScript为数组也提供了push()和pop()方法,类似于栈的行为(一种后进先出的数据结构)。
push()方法 可以接收任意数量的参数,把他们添加到末尾,并返回修改后数组的长度。
pop()方法 从数组末尾移除最后一项,减少length值,并返回移除项。
var colors = new Array(); //创建数组var count = colors.push("red","green"); //推入两项alert(count); //2count = colors.push("black"); //推入另一项alert(count); //3var item = colors.pop(); //取得最后一项alert(item); //"black"alert(colors.length); //2
队列方法 — shift()方法 和 push()方法
栈数据结构的访问规则是LIFO(后进先出),队列数据结构是FIFO(先进先出)
shift()方法 能够移除数组中第一项并返回该项,同时数组长度减1。
var colors = new Array(); //创建数组var count = colors.push("red","green"); //推入两项alert(count); //2count = colors.push("black"); //推入另一项alert(count); //3var item = colors.shift(); //取得第一项alert(item); //"red"alert(colors.length); //2
unshift()方法 与shift()方法 相反,能再数组前端添加任意个项,并返回新数组长度。
var colors = new Array(); //创建数组var count = colors.push("red","green"); //推入两项alert(count); //2count = colors.unshift("black"); //推入另一项alert(count); //3var item = colors.pop(); //取得最后一项alert(item); //"green"alert(colors.length); //2
重排序方法 — reverse()方法 和 sort()方法
reverse()方法 反转数组项的顺序
var values = [1,2,3,4,5];value.reverse();alert(values); //5,4,3,2,1
sort()方法 按升序排列数组项 —-最小的值位于最前面
sort() 可以接收一个比较函数作为参考,以便我们制定哪个值位于哪个值前面。
比较函数结构两个参数,如果第一个参数应该位于第二个之前返回一个负数,如果两个参数相等,返回零,如果第一个参数应该位于第二个之后则返回正数。
比较函数:
var values = [0,1,5,10,15];function compare(value1,value2){ if(value1 < value2){ return -1 ; } else if (value1 > value2){ return 1; }}values.sort(compare);alert(values); //0,1,5,10,15
以下是一个简单的比较函数:
function compare(value1,value2){ return value2 - value1 ;}
操作方法 — concat()方法 sort()方法 和 splice()方法
concat()方法 可以基于所有项创建一个新数组:
var colors = ["red","green","blue"];var colors2 = colors.concat("yellow",["black","brown"]);alert(colors); //red,green,bluealert(colors2); //red,green,blue,yellow,black,brown
slice()方法 能够基于当前数组中的一个或多个项创建一个数组,如果有两个参数,该方法返回起始和结束位置之间的项 —- 但不包括结束位置项,并且不会影响原始数组。
var colors = ["red","green","blue","yellow","purple"];var colors2 = colors.slice(1);var color3 = colors.slice(1,4);alert(color2); //green,blue,yellow,purplealert(color3); //green,blue,yellow
- JavaScript高级程序设计 第五章 — 引用类型
- Javascript高级程序设计第二版第五章--引用类型--笔记
- 【javascript高级程序设计】读书摘录2 第五章、引用类型
- 《JavaScript高级程序设计》总结 第五章 引用类型
- javascript高级程序设计 第五章引用类型 迭代方法
- javascript高级程序设计第三版 第五章 引用类型
- javascript高级程序设计学笔记——第五章 引用类型
- JavaScript高级程序设计——第五章引用类型之Function;
- javascript 高级程序设计 第5章 引用类型 Object类型
- javascript高级程序设计--第五章基本包装类型开始
- JavaScript高级程序设计学习笔记——引用类型1
- 《javascript高级程序设计》——引用类型之Object、Array
- 《javascript高级程序设计》——引用类型之Function
- 《JavaScript高级程序设计》读书笔记(二):引用类型
- JavaScript高级程序设计笔记-引用类型
- 《JavaScript高级程序设计》读书笔记--5-引用类型
- JavaScript高级程序设计(引用类型)
- 笔记:js高级程序设计第五章,函数的引用类型与基本类型
- IOS巅峰之图片异步下载
- 第三周 项目4-顺序表应用2
- Android自定义控件
- xml
- 传销的陷阱
- JavaScript高级程序设计 第五章 — 引用类型
- Tomcat中端口占用如何处理?
- 周记(月记录)8.24-9.18
- POJ 3255 Help with Intervals (线段树区间更新)
- 【springmvc+mybatis项目实战】杰信商贸-17.货物修改+删除
- 普通指针 指针引用 二级指针
- Android系统源代码情景分析笔记00
- oc作用域-点语法
- 线程的生命周期