引用类型

对象:访问对象属性的两种方法

1. alert(person.name):点表示法,最常用的方法
2. alert(person.["name"]):方括号表示法的优点是可以通过变量名来访问属性。

数组:

检测方法:

  • instanceof

    转换方法:

  • toString();
  • toLocalString();
  • valueOf();
  • split(separator,howmany):用于把一个字符串分割成字符串数组.separator :字符串或正则表达式,从该参数指定的地方分割 stringObject。howmany:该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。

栈方法

  • push():可以接收任意数量的参数,把它们逐个添加到数组末尾,并返回修改后的数组长度。
  • pop() :从数组末尾移除最后一项,返回移除的项。

队列方法

  • shift():移除数组中的第一个项并返回该项。
  • unshift():在数组前端添加任意个项并返回新数组的长度。

重排序方法

  • reverse(): 反转数组项的顺序。
  • sort():按升序排列数组项。

操作方法

  • concat():使用这个方法后,会先创建当前数组的一个副本,然后将接收到的参数添加到副本的末尾,最后返回新构建的数组。
  • slice(a,b):基于当前数组创建一个新的数组,截取原数组位置a到位置b的元素组成新的数组。
  • splice(a,b,其他元素):这个方法可以删除,插入,替换。从数组位置a开始删除b项,再把其他元素插入位置a处。

位置方法

  • indexOf():从数组开头开始查找,返回要查找的项在数组中的位置。
  • lastIndexOf():从数组结束开始查找,返回要查找的项在数组中的位置。

迭代方法

  • every():对数组中的每一项运行给定的函数,如果该函数对每一项返回true,则返回true。
  • filter():对数组中的每一项运行给定的函数,返回该函数会返回true的项组成的数组。
  • forEach():对数组中的每一项运行给定的函数,无返回值。(只能遍历一维数组)
  • map():对数组中的每一项运行给定的函数,返回每次函数调用的结果组成的数组。
  • some():对数组中的每一项运行给定的函数,如果该函数对某一项返回true,则返回true。

归并方法

  • reduce();从数组的第一项开始,逐项遍历数组,然后构建一个最终返回的值。
  • reduceRight();从数组的最后一项开始,逐项遍历数组,然后构建一个最终返回的值。

    Date 类型

  • Date():自动获得当前的日期与时间(本地计算机的)。
  • Date.parse():接收一个表示日期的字符串参数,根据字符串返回一个日期的毫秒数,根据此创建一个日期对象。
  • Date.UTC():功能同上,但使用不同的信息,参数分别为年份(数字),基于0的月份(一月为0,二月为1,以此类推),月中的某一天(1到31),小时数(0到23),分钟,秒及毫秒数。其中,toTimeString()只有年和月是必需的参数。省略的参数都假设为0.
  • Date.now():返回调用这个方法时的时间。

日期格式化方法

  • toDateString():以特定于实现的格式显示星期几,月,日和年;
  • toTimeString():以特定于实现的格式显示时,分,秒和时区;
  • toLocalDateString():以特定于地区的格式显示星期几,月,日和年;
  • toLocalTimeString():以特定于实现的格式显示时,分,秒;
  • toUTCString():以特定于实现的格式显示完整的UTC日期;

常用的日期/时间组件方法

  • 获取:getTIme(),getMonth(),getDate(),getHours(),getMinutes(),getSeconds(),getMilliseconds();
  • 设置:setTIme(),setMonth(),setDate(),setHours(),setMinutes(),setSeconds(),setMilliseconds();

RegExp类型

正则表达式的两种声明方式:

var expression = / pattern /flags;
var pattern = new RegExp(“pattern”,”flags”)

flags的三种值

  • g:表示全局模式,即模式将被运用于所有的字符串,而非在发现第一匹配项时立即停止。
  • i: 表示不区分大小写模式,即在确定匹配项时忽略模式与字符串的大小写。
  • m: 表示多行模式,即在到达一行文本末尾时还会继续查找下一行是否存在与模式匹配的项。

RegExp实例属性

  • global:布尔值,表示是否设置了g标志。
  • ignoreCase:布尔值,表示是否设置了i标志。
  • multiline:布尔值,表示是否设置了m标志。
  • lastIndex:整数,表示开始搜索下一个匹配项的字符位置。
  • source:正则表达式的字符串表示,按照字面量形式返回。

RegExp实例方法

  • exec():接收一个参数,即要应用模式的字符串,然后返回包含第一个匹配项信息的数组。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    var text = "cat ,bat,sat,fat";
    var pattern1 = /.at/;

    var matches = pattern1.exec(text);
    alert(matches.index); //0
    alert(matches[0]); //cat
    alert(matches.lastIndex); //0

    matches = pattern1.exec(text);
    alert(matches.index); //0
    alert(matches[0]); //cat
    alert(matches.lastIndex); //0

    var pattern2 = /.at/g;

    var matches = pattern2.exec(text);
    alert(matches.index); //0
    alert(matches[0]); //cat
    alert(matches.lastIndex); //3

    atches = pattern2.exec(text);
    alert(matches.index); //5
    alert(matches[0]); //bat
    alert(matches.lastIndex); //8

此例子可以充分表明加入全局标志g与不加的区别。

  • text():接收一个字符串参数,在该模式下与该参数匹配的项返回true。
    1
    2
    3
    4
    5
    var text = "000-00-0000";
    var pattern = /\d{3}-\d{2}-\d{4}/;
    if(pattern.test(text)){
    alert("the pattern was matched.");
    }

这种用法经常出现在验证用户输入的情况下,因为我们只想知道输入是不是有效。

Function类型

arguement对象

函数名.length返回函数形参的个数。
arguments.length返回实参的个数
argument z还能在函数内部访问使用
argumrnts.callee指向当前函数,此方法多用于递归操作。

this

this对象是指在运行时期基于执行环境所绑定的
this 总是指向调用者,也就是说,谁调用我,我就指向谁。

call apply

call() 与apply()可以绑定一些函数,用于传递参数,调用参数。
最大的用处是可以扩充作用域

1
2
3
4
5
6
7
8
9
window.color = "red";
var o ={color : "blue"};
function sayColor(){
alert(this.color);
}
sayColor();
sayColor.call(this); //red
sayColor.call(window); //red
sayColor.call(o); //blue

call () 与 apply()的区别仅仅是接受参数的方式不同,call()方法中传递的参数要逐项列举,apply()除了this之外的参数通过数组形式传递。

bind()方法

这个方法会创建一个函数的实例,其this值会被绑定到传给bind()函数的值。

1
2
3
4
5
6
7
window.color = "red";
var o ={color : "blue"};
function sayColor(){
alert(this.color);
}
var objectSayColor = sayColor.bind(o);
objectSayColor(); //blue8