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() 方法相似,只不过要传递给函数的参数是由数组指定的:
f.apply(o, [1, 2]);
4. 在 JavaScript 中 undefined 会被翻译成 false 。
5. Array 的 slice() 方法
方法 Array.slice() 返回的是指定数组的一个片段 (slice) ,或者说是子数组。它的两个参数指定了要返回的片段的起止点。返回的数组包含由第一个参数指定的元素和从那个元素开始到第二个参数指定的元素为止的元素,但是并不包含第二个参数所指定的元素。
下一篇: ext 继续搞!