5、对象
本地对象:
1)、Array类
toString () 字符转换;
slice () 返回特定项新数组;
array栈:后进先出结构;
push () :在数组结尾添加一个或多个项;
pop () :删除最后一个数组项(length - 1);
shift () :删除第一个数组项;
unshift () :把一个数组项放到第一个位置;
splice () :把数组项插入数组的中部;
2)、Date类
内置对象
1)、Global 对象 实际上是不存在的一个对象;
方法:eval() 类似解释程序,接收一个参数,即要执行的js字符串;也可以在eval中调用内部定义的函数及变量;
2)、Math对象【见下】
3)、宿主对象:所以非本地对象就是宿主对象
其他补充点:
4)、作用域:即变量的适用范围;
公用、受保护和私有作用域
静态作用域并不是静态的:静态作用域都可以从同一个位置访问。
5)this关键字
继承
apply () 方法和 inheritForm () ;
inheritForm () 方法接收一个参数,即要复制的方法所属的类;
6、控制结构和循环
1)条件语句
If…else… 基本格式:
If(表达式)
代码段;
else
代码段;
If…else… 嵌套格式:
If(布尔值) 代码1;
else() 代码2;
else if (布尔值) 代码3;
else 代码4;
跳出一个分支和循环:break
2)switch语句
基本格式:
switch (表达式) { case 参数值}
3)循环语句
for 循环:使用for循环数组
for…in… 使用数组中的变量遍历数组中的每个元素。
4)while循环
do… while…
break 终止循环;
continue 跳出当前循环;
5)with
用于设置代码在特定对象中的作用域;with语句是运行比较缓慢的代码,尽量避免时使用。
格式:
with (expression) statement;
7、函数
格式:
Function 函数名( 参数可选){ 表达式 }
如果函数没有明确的返回值,或调用了没有参数的return语句,那么函数真正的返回值是underfined。
Js函数没有重载
函数实际上是功能完整的对象,function类表示开发者自定义的任何函数,格式:
var fuction_name = new Function (参数。。。函数主体)
闭包:指词法表示包括不必计算的变量的函数,就是说,该函数能使用函数外定义的变量。
示例:
<script type="text/javascript">
var msg = "HelloWorld!";
function sayHW(){
alert(msg);
}
</script>
<input type="button" value = "点击我"onclick="sayHW();">
8、正则表达式
正则表达式是一种可以用于文字模式匹配和替换的强有力的工具。是由一系列普通字符和特殊字符组成的能明确描述文本字符串的文字匹配模式。
预定义特殊字符(非打印字符):
字符 |
含义 |
\cx |
匹配由x指明的控制字符。例如, \cM 匹配一个 Control-M 或回车符。x 的值必须为 A-Z 或 a-z 之一。否则,将 c 视为一个原义的 'c' 字符。 |
\f |
匹配一个换页符。等价于 \x0c 和 \cL。 |
\n |
匹配一个换行符。等价于 \x0a 和 \cJ。 |
\r |
匹配一个回车符。等价于 \x0d 和 \cM。 |
\s |
匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。 |
\S |
匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。 |
\t |
匹配一个制表符。等价于 \x09 和 \cI。 |
\v |
匹配一个垂直制表符。等价于 \x0b 和 \cK。 |
字符类:
1、负向类:指定要排除的字符,脱字符号(^)不匹配后面跟着的字符;
2、范围类:从什么到什么,横向字符( - ),不区分大小写;
3、组合类:由其他几种类组合成的字符类;示例:
匹配a~m的字符及1~4的数字,和一个换行符:[a-m1-4\n]
注意:在内部的类之间不能使用空格;
4、预定义类
常用字符集:
\d
[0-9]
所有数字
\w
[a-zA-Z]
表示所有的字符,和文化字体有关
\s
[ \t\r\n]
空格,回车和tab。和文化字体有关
预订一字符集可以既可以用在字符集里面,也可以用在字符集外面。
\s\d
1<space>+<space>2<space>=<space>3
匹配后面紧跟着一个数字的空白符
[\s\d]
1<space>+<space>2<space>=<space>3
匹配一个单独的字符或者一个数字或者一个空白符
[\da-fA-F]和[0-9a-fA-F]的匹配结果是一样的。
同样,在预定义字符集前面加一个“^”符号表示否定。它们也有预先定义好的表示:
\D
[^\d]
非数字
\W
[^\w]
非字符,和文化字体有关
\S
[^\s]
非空格,回车和tab。和文化字体有关
量词:
限定符:
字符 |
描述 |
* |
匹配前面的子表达式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"。* 等价于{0,}。 |
+ |
匹配前面的子表达式一次或多次。例如,'zo+' 能匹配 "zo" 以及 "zoo",但不能匹配 "z"。+ 等价于 {1,}。 |
? |
匹配前面的子表达式零次或一次。例如,"do(es)?" 可以匹配 "do" 或 "does" 中的"do" 。? 等价于 {0,1}。 |
{n} |
n 是一个非负整数。匹配确定的 n 次。例如,'o{2}' 不能匹配 "Bob" 中的 'o',但是能匹配 "food" 中的两个 o。 |
{n,} |
n 是一个非负整数。至少匹配n 次。例如,'o{2,}' 不能匹配 "Bob" 中的 'o',但能匹配 "foooood" 中的所有 o。'o{1,}' 等价于 'o+'。'o{0,}' 则等价于 'o*'。 |
{n,m} |
m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。例如,"o{1,3}" 将匹配 "fooooood" 中的前三个 o。'o{0,1}' 等价于 'o?'。请注意在逗号和两个数之间不能有空格。 |
特别字符:
特别字符 |
说明 |
$ |
匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 '\n' 或 '\r'。要匹配 $ 字符本身,请使用 \$。 |
( ) |
标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,请使用 \( 和 \)。 |
* |
匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 \*。 |
+ |
匹配前面的子表达式一次或多次。要匹配 + 字符,请使用 \+。 |
. |
匹配除换行符 \n之外的任何单字符。要匹配 .,请使用 \。 |
[ |
标记一个中括号表达式的开始。要匹配 [,请使用 \[。 |
? |
匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。要匹配 ? 字符,请使用 \?。 |
\ |
将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符。例如, 'n' 匹配字符 'n'。'\n' 匹配换行符。序列 '\\' 匹配 "\",而 '\(' 则匹配 "("。 |
^ |
匹配输入字符串的开始位置,除非在方括号表达式中使用,此时它表示不接受该字符集合。要匹配 ^ 字符本身,请使用 \^。 |
{ |
标记限定符表达式的开始。要匹配 {,请使用 \{。 |
| |
指明两项之间的一个选择。要匹配 |,请使用 \|。 |
构造正则表达式的方法和创建数学表达式的方法一样。也就是用多种元字符与操作符将小的表达式结合在一起来创建更大的表达式。正则表达式的组件可以是单个的字符、字符集合、字符范围、字符间的选择或者所有这些组件的任意组合。