1、Object类型
两种方式定义:对象字面量、new
两种方式访问:括号、点
2、Array类型
2.1 定义方式:new Array、数组字面量
2.2 lenght属性:可以利用它方便的想数组末尾添加元素
2.3 检测数组
instanceof
isArray()方法
2.4 toString()、soLocaleString()、valueOf()、join()方法
2.5、栈方法(尾部加入或去除元素)
push()方法:逐个添加到数组末尾,并返回修改后的数组长度
pop()方法:返回数组的最后一项
var colors = new Array(); // 创建一个数组 var count = colors.push("red", "green"); // 推入两项 alert(count); //2 count = colors.push("black"); // 推入另一项 alert(count); //3 var item = colors.pop(); // 取得最后一项 alert(item); //"black" alert(colors.length); //2
var colors = ["red", "blue"]; colors.push("brown"); // 添加另一项 colors[3] = "black"; // 添加一项 alert(colors.length); // 4 var item = colors.pop(); // 取得最后一项 alert(item); //"black"
2.6 队列方法(数组前端添加或移除元素)
unshift()方法:在数组前端添任意项并返回新数组的长度
shift()方法:在数组前端推入任意项并返回该项
2.7 reverse()、sort()方法
一般的排序
function compare(value1, value2) { if (value1 < value2) { return 1; } else if (value1 > value2) { return -1; } else { return 0; } } var values = [0, 1, 5, 10, 15]; values.sort(compare); alert(values); // 15,10,5,1,0
对于数值类型或者其valueOf()方法会返回数值类型的对象类型
function compare(value1, value2){ return value2 - value1; }
2.8 concat()方法
2.9 slice()方法:
var colors = ["red", "green", "blue", "yellow", "purple"]; var colors2 = colors.slice(1); var colors3 = colors.slice(1,4); alert(colors2); //green,blue,yellow,purple alert(colors3); //green,blue,yellow
2.10 splice()方法:
主要用途是向数组的中部插入项,splice()方法始终都会返回一个数组,该数组中包含从原始数组中删除的项(如果没有删除任何项,则返回一个空数组)
删除:可以删除任意数量的项,只需指定2 个参数:要删除的第一项的位置和要删除的项数。
插入:可以向指定位置插入任意数量的项,只需提供3 个参数:起始位置、0(要删除的项数)和要插入的项。如果要插入多个项,可以再传入第四、第五,以至任意多个项。
替换:可以向指定位置插入任意数量的项,且同时删除任意数量的项,只需指定3 个参数:起始位置、要删除的项数和要插入的任意数量的项。插入的项数不必与删除的项数相等。
2.11 indexOf()和lastIndexOf()
2.12 迭代方法:
every(),filter(),forEach(),map(),some()
一般传入三个参数:item(那一项),index,arrray(该数组)
2.13 reduce,reduceRight
一般传入四个参数:prev(前一个值),cur(当前值),index(项的索引值),array(数组对象)
3、Date类型
Date.parse(参数); 这里的参数表示日期的一个字符串参数,具体格式因地区而异
Date.UTC(); :传入的参数分别代表年、月,日,时、分、秒、毫秒
Date.now();
toString()与toLocaleString():这两个方法在不同的浏览器上返回的日期和时间格式各不相同
valueOf(): 返回此时间的时间戳
日期的格式化方法和日期组件方法(具体的查看手册)
4、RegExp类型
4.1 RegExp定义方法:
字面量:
构造函数:(接收两个参数:一个是要匹配的字符串模式,另一个是可选的标志字符串)。注意在使用字符串模式时,必须对所有元字符进行双重转义
两种定义方式的区别:看下面一段代码
var re = null, i; for (i=0; i < 10; i++){ re = /cat/g; re.test("catastrophe"); //只返回一次TRUE,第二次从从索引值为3的支付开始找…… } for (i=0; i < 10; i++){ re = new RegExp("cat", "g"); re.test("catastrophe"); //每次都返回TRUE,因为每次迭代都会创建一个新的RegExp实例 }
4.2 RegExp的实力属性:
global:布尔值,表示是否设置了g 标志。
ignoreCase:布尔值,表示是否设置了i 标志。
lastIndex:整数,表示开始搜索下一个匹配项的字符位置,从0 算起。
multiline:布尔值,表示是否设置了m 标志。
source:正则表达式的字符串表示,按照字面量形式而非传入构造函数中的字符串模式返回。
4.3 RegExp的实例方法
exec()方法:
exec()接受一个参数,即要应用模式的字符串,然后返回包含第一个匹配项信息的数组;或者在没有匹配项的情况下返回null。
返回的数组虽然是Array的实例,但包含两个额外的属性:index 和input。其中,index 表示匹配项在字符串中的位置,而input 表示应用正则表达式的字符串。
在数组中,第一项是与整个模式匹配的字符串,其他项是与模式中的捕获组匹配的字符串(如果模式中没有捕获组,则该数组只包含一项)。
模式中时候设置全局g的调用exec()方法的区别
test()方法:一般都只用来判断返回TRUE或false
toLocaleString和toString()方法:
4.4 RegExp构造函数的属性:
长属性和对应的短属性名:
注意:对这些属性的的支持各个浏览器不一样
RegExp.$1、RegExp.$2…RegExp.$9,分别用于存储第一、第二……第九个匹配的捕获组
4.5 模式的局限性
5、Function类型
6、基本包装类型
7、单体内置对象
8、小结
对象在JavaScript 中被称为引用类型的值,而且有一些内置的引用类型可以用来创建特定的对象,
现简要总结如下:
引用类型与传统面向对象程序设计中的类相似,但实现不同;
Object 是一个基础类型,其他所有类型都从Object 继承了基本的行为;
Array 类型是一组值的有序列表,同时还提供了操作和转换这些值的功能;
Date 类型提供了有关日期和时间的信息,包括当前日期和时间以及相关的计算功能;
RegExp 类型是ECMAScript 支持正则表达式的一个接口,提供了最基本的和一些高级的正则表
达式功能。
函数实际上是Function 类型的实例,因此函数也是对象;而这一点正是JavaScript 最有特色的地
方。由于函数是对象,所以函数也拥有方法,可以用来增强其行为。
因为有了基本包装类型,所以JavaScript 中的基本类型值可以被当作对象来访问。三种基本包装类
型分别是:Boolean、Number 和String。以下是它们共同的特征:
每个包装类型都映射到同名的基本类型;
在读取模式下访问基本类型值时,就会创建对应的基本包装类型的一个对象,从而方便了数据
操作;
操作基本类型值的语句一经执行完毕,就会立即销毁新创建的包装对象。
在所有代码执行之前,作用域中就已经存在两个内置对象:Global 和Math。在大多数ECMAScript
实现中都不能直接访问Global 对象;不过,Web 浏览器实现了承担该角色的window 对象。全局变
量和函数都是Global 对象的属性。Math 对象提供了很多属性和方法,用于辅助完成复杂的数学计算
任务。