JavaScript高级程序设计3学习笔记
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript高级程序设计3学习笔记相关的知识,希望对你有一定的参考价值。
引用类型有Object、Array、Date、RegExp、Function、基本包装类型
创建一个对象实例用new + 构造函数,比如:var obj = new Object();
Object类型
还可以用对象字面量表示法来表示对象:
var person = {
name : "harry",
age : 29
};
访问对象的属性(或使用对象的方法来操作数)使用点表示法或者方括号(适用于属性表示法),例如
alert(person["name"]); //"harry"
alert(person.name); //"harry"
Array类型
两种创建数组的方法,构造函数和数组字面量表示法:
构造函数:
var colors = new Array(3);
或者var colors = new Array("red", "blue");
,其中操作符new可以省略,传入的参数是数值表示数组的项数,传入的参数是其他类型则表示数组项的值。数组字面量:
var colors = ["red", "blue", "green"];
所有数组对象都有属性length,方法toLocaleString(), toString()和valueOf(),其中toString()方法返回数组中每一项以字符串形式拼接的以逗号分隔的字符串
一些重要的数组操作方法
栈方法
LIFO结构,使用方法push()和pop(),push()方法接收任意类型的参数,从数组的末尾插入项,返回修改后数组的长度;POP()方法返回从数组末尾移除的最后一项。队列方法
FIFO结构,使用方法shift()和push(),shift()方法移除数组第一项并返回这一项;使用unshift()和pop()可以从反方向来模拟队列,unshift()方法从数组的前面插入项,并返回修改后的数组长度。重排序方法
方法reverse()反转数组项的顺序,sort()方法会调用每个数组项的toString()方法,比较得到的字符串,按升序排列,可以接收一个比较函数作为参数来比较数组项:function compare(value1, value2) { if (value1 < value2) { return -1; } else if (value1 > value2) { return 1; } else { return 0; } }
另外一个按降序排列的比较函数:
function compare(value1, value2) { if (value1 < value2) { return 1; } else if (value1 > value2) { return -1; } else { return 0; } }
拼接、切片、删除、插入、替换方法(用到concat(), slice(), splice()方法)
concat()和slice()方法都是创建数组的一个副本,不影响原数组。concat()方法参数是要拼接的数组项,slice()方法第一个参数是要返回项的起始位置,第二个参数是要返回项的结束位置(不包括),如果只有一个参数,则返回从该参数指定位置到数组末尾所有的项。
splice()方法的三个参数:第一个参数是起始位置,第二个参数是要删除的项数,第三个参数是要插入的项,可以对传入的参数进行改变,这个方法会影响原数组。位置方法(用到indexOf()和lastIndexOf()方法)
都可以有两个参数,第一个参数表示要查找的项,第二个参数表示查找的起始位置(可选),方法indexOf()表示从前向后找,方法lastIndexOf()表示从后向前找。迭代方法:every(), filter(), forEach(), map(), some()
传入方法的函数有三个参数:数组项的值,该项在数组中的位置和数组对象本身。归并方法:reduce()和reduceRight()
reduce()从数组的第一项遍历到最后一项,reduceRight()则从后向前遍历,对数组所有的项求和的代码例子:var values = [1, 2, 3, 4, 5]; var sum = values.reduce(function(pre, cur, index, array) { return pre + cur; }); alert(sum); //15
Date类型
Function类型
两种构造函数方法:函数声明和函数表达式,函数声明可以在声明之前调用函数,而函数表达式不行:
alert(sum(10, 20)); //30
function sum(num1, num2) {
return num1 + num2;
}
alert(sum(10, 20)); //不能正常运行
var sum = function(num1, num2) {
return num1 + num2;
}
以上是关于JavaScript高级程序设计3学习笔记的主要内容,如果未能解决你的问题,请参考以下文章
《javascript高级程序设计》学习笔记 | 9.3.代理模式
JavaScript高级程序设计(第3版)| 学习笔记: 在HTML中使用JavaScript
《JavaScript高级程序设计(第四版)》学习笔记第3章