5.1 Object 类型

创建Object实例有两种方式

1.       使用new

var person = new Object();

person.name = ‘豪情’;

person.age = 29;

2.       使用对象字面量方式

var person = {

         name: ‘豪情’,

         age:29

}

 

5.2 Array 类型

创建数组有两种

var arr = new Array();

var arr2 = [];

数组的length 不是只读的,是只写的

5.2.1 转换方法

toLocaleString(), toString()和valueOf()

join 方法重现了toString(),不同的分隔符来分隔然后按字符串形式返回数组。

var num = [1 , 2, 3];

alert(num.join(‘--’)); // output 1--2--3

5.2.2 栈方法

数组可以像栈一样,栈是一种可以限制插入和删除项的数据结构。保持后进先出的原则。

数组的插入或移除只发现在栈的顶部。

a)         push() 添加到数组的末尾

b)         pop() 从数组末尾移除最后一项,然后返回移除的项

5.2.3 队列方法

队列的数据结构是先进先出。

         shift() 移除数组中的第一个项并返回该项

         unshift() 能在数组前端添加任意个项并返回新数组的长度

5.2.4 重排序方法

         reverse() 反转数组项的顺序

         sort() 默认按升序排列数组项,也可以接受一个比较函数做为参数

5.2.5 操作方法

a)         concat() 如果传递给concat()方法的是一或多个数组,则该方法会将这些数组中的每一项都添加到结果数据中。如果传递的不是数组这些值会被简单地添加到结果数组的末尾。

b)         slice(a, b) 参数表示返回项的起始和结束位置,如果只有一个参数,则返回指定位置开始到当前数组末尾的所有项。

c)         splice(a, b, c)

                         i.              当有两个参数时:要删除第一项的位置,或删除的项数

                       ii.              当有三个参数时:替换。3个参数分别表示的意思是:起始位置,要删除的项数和要插入的项,  当删除项为0时,只插入不删除。

 

这里在和string的几个方法比较一下,以免记错:

slice 既可用于array,也可用于string

substring,substr只可用于string

substring,slice有两个参数,第二个参数表示位置,其实splice,substr第二个参数都表示长度。

substring,slice,substr,2个参数时,slice,substr 2个可以为负,为负是计算位置(length + value),substring则视为0

 

splice() 方法与 slice() 方法的作用是不同的,splice() 方法会直接对数组进行修改。

slice可用于字符串,splice则不可用于字符串。

这里边也有几个简单的例子:

​http://hi.baidu.com/jinwb/blog/item/b6a4ac4b2f7ae2fb83025c38.html​

 

5.3 Date类型

Date.parse()

接收一个表示日期的字符串参数,尝试根据这个字符串返回相应日期的毫秒数。

5.3.1 继承的方法

重写了toLocaleString(),toString(),valueOf()

5.3.2 日期格式化方法

toDateString(); //星期几,月日和年

toTimeString(); // 时分秒和时区

toLocaleDateString(); //特定于地区的格式显示星期几,月日和年

toLocaleTimeString(); //特定于时分秒

toUTCString()  //特定于实现的格式完整的UTC日期

5.3.3 日期/时间组件方法

getTime() //日期毫秒数

setTime();//设置毫秒数

getFullYear():// 取得4位数的年份

5.4 RegExp类型

正则的匹配模式:

g—表示全局(global)

i—表示不区分大小写(case-insensitive)

m—表示多行(multiline)

5.4.1 转换方法

global—布尔值,是否设置了g标志

ignoreCase—布尔值,是否设置了i标志

lastIndex—整数,表示开始搜索下一个匹配项的字符位置,从0算起

multiline—布尔值,表示是否设置了m标志

source—正则表达式的字符串表示,按照字面量形式返回

5.4.2 RegExp实例方法

exec(): 返回包含第一个匹配项信息的数组

test(): 在模式与参数匹配的情况下,返回true,否则返回false

5.5 Function类型

函数实际上是对象,每个函数都是Function类型的实例,既然是对象,就会有属性和方法,而且函数名实际上是指向函数对象的一个指针。

function sum(){return arguments[0] + arguments[1]} //第一次预编译检查语法并执行

var sum = function(){return arguments[0] + arguments[1]} //第一次预编译检查语法不执行,只有当调用时才执行

函数的内部属性,

arguments,this

arguments是like array对象,有数组的属性,比如,有长度也可用下标来访问,但是它不是数组。

arguments.callee调用自身

this是指向当前函数,用call,apply动态改变this指向.

5.6 基本包装类型

Boolean, Number和String

5.6.1 Boolean类型

Boolean类型是与布尔值对应的引用类型。

typeof 基本类型返回 Boolean

对引用类型则返回 object

5.6.2 Number类型

number类型是数字值对应的引用类型。

toString(基数) 返回几进制数值的字符串形式

toFixed(num) 返回num位小数

toExponential() 返回以指数表示的数值的字符串形式

5.6.3 String类型

String类型是字符串的对象包装类型

1.      字符方法

charAt()以单字符字符串的形式返回给定位置的那个字符

charCodeAt() 返回字符编码

2.      字符串操作方法

concat() 用于将一或多个字符串拼接起来,返回拼接得到的新字符串

slice,substr,substring在前面已做过比较,不多述

3.      字符串位置方法

indexOf():从一个字符串中搜索给定的子字符串位置,返回子字符串的位置,如果没有找到则返回-1;它从开关后向搜索子字符串,而lastIndexOf()从字符串末尾向前搜索

4.      字符串大小写转换方法:

toLowerCase() 转换为小写

toUpperCase() 转换为大写

5.      字符串模式匹配方法

match() 本质上与exec()方法相同,match只接受一个参数,要么是正则表达式,要么是一个RegExp对象

search()查找模式,返回字符串中第一个匹配项索引,如果没有找到则返回-1

replace()第二个参数还可以是一个函数

6.      localeCompare() 比较两个字符串位置

7.     fromCharCode() 接受多个字符编码然后把它们转换成一个字符串

5.7.1 Global 类型

有isNaN(), isFinite(), parseInt(), parseFloat()

URI编码方式

encode() 不会对本身属于URI的特殊字符进行编码,如冒号,正斜杠

encodeURIComponent() 会对它发现的任何非标准字符进行编码

5.7.2 Math 类型

Math.PI π的值

Math.LN2 2的自然对数

 

Math.ceil(),向上舍入

Math.floor(),向下舍入,

Math.round(),正常舍入

 

Math.random()返回介于0和1之间的随机数

其它:

Math.abs(num); //num绝对值

Math.sin(x);

Math.cos(x);

Math.tan(x);

Math.exp(num); //Math.E的num次幂

Math.log() //num 的自然对数

Math.pow() //num的power次幂

Math.sqrt(num) //num的平方根

Math.acos(x) //返回x的反余弦值

Math.asin(x) //返回x的反正弦值

Math.atan(x) //返回x的反正切值

Math.atan2(y,x) //返回y/x的反正切值