日期:2014-05-16  浏览次数:20482 次

JavaScript知识漏洞

1. 正则表达式的定义

JavaScript 中,正则表达式由 RegExp 对象表示。当然,可以使用 RegExp() 构造函数创建 RegExp 对象,不过通常还是用特殊的直接量语法来创建 RegExp 对象。就像字符串直接量被定义为包含在引号内的字符一样,正则表达式直接量也被定义为包含在一对斜杠( / )之间的字符。所以, JavaScript 可能会包含如下的代码:

var pattern = /s$/;

2. 正则表达式直接量字符

字符

匹配

字母数字字符

自身

\o

NUL 字符 (\u0000)

\t

制表符 (\u0009)

\n

换行符 (\u000A)

\v

垂直制表符 (\u000B)

\f

换页符 (\u000C)

\r

回车 (\u000D)

\xnn

由十六进制数 nn 指定的拉丁字符,例如, \x0A 等价于 \n

\uxxxx

由十六进制 xxxx 指定的 Unicode 字符,例如, \u0009 等价于 \t

\cX

控制字符 ^X 。例如, \cJ 等价于换行符 \n

3. 方法 apply() call()

ECMAScript 规范给所有函数定义了两个方法 call() apply() 。使用这两个方法可以像调用其他对象的方法一样调用函数。 call() apply() 的第一个参数都是要调用函数的对象,在函数体内这一参数是关键字 this 的值。 call() 的剩余参数是传递给要调用的函数的值。例如,要把两个数字传递给函数 f() ,并将它作为对象 o 的方法调用,可以使用如下的代码:

f.call(o, 1, 2);

这与下面的代码类似:

o.m = f;

o.m(1, 2);

delete o.m;

apply() 方法和 call() <