浅谈JavaScript学习
前言:同样的事情,别人没有做过而你也没有做过,这就是你的失败之处;相反,别人没有做过而你尝试着做了,这就是你的成功。比别人多踏一步,成功的几率高达99%,如果这样,你愿意去做么,来吧,让我们一起总结JavaScript学习开发经验。
首先列一下JavaScript要研究学习的东西,学习任何东西都要具备一定的基础,当然这个基础并一定限于同行业的知识,可以是你的兴趣,爱好,把这些当成学习的基础,那么你的成功就指日可待了,好了废话少说,开始步入JavaScript正题。
1、 语法结构
2、 数据类型
3、 变量
4、 表达式和运算符
5、 数组
6、 控制结构和循环
7、 函数
8、 正则表达式
9、 对象
10、事件
11、DOM
12、拖放
1、 语法结构
- 空白符 不可缺
-- 大小写敏感
--- 标识符
---- 保留字
----- 分号可选;
------ 语句注释:
1)// 当前行注释
2)/*
多行注释
*/
3){} javascript要执行的代码块
4)分号;或换行 定义语句的结束
2、 数据类型
1)字符串类型:
---转义序列:
/b 回退 /f 换页 /n 换行 /r 回车符
/t 制表符 /’ 单引号 /” 双引号 // 反斜杠
/xNN NN是一个十六进制数,表示一个拉丁字符
/uDDDD DDDD是一个十六进制数,表示一个Unicode字符
2)数字类型: 浮点数:12.568,整数:256
3)布尔值类型:Boolean:true,false
4)空值(Null):代表变量什么也不是
5)未定义值(Undefined): var a//变量a 这时的状态
3、 变量
变量名必须以字母或下划线开始,其他部分可以使用数字、字母、美元符和下划线构成。
JavaScript变量名区分大小写,可使用骆驼命名法:变量名以一个小写字母开始,后面的单词首字母大写且没有空格。
变量名声明以关键字var开始。
关键字
保留字
4、 表达式和运算符
1)逻辑运算符和比较运算符
比较运算符:比较操作数并返回布尔值
常用的比较运算符:
== 相等判定 如果相等,返回值为:true,否则为:false
!= 不等判定 如果不等,返回值为:true,否则为:false
> 大于判定
>= 大于等于判定
< 小于判定
<= 小于等于判定
String对象大小写字母判定:toUpperCase() ;toLowerCase() 。
总结:比较字符串时,小写的ASCⅡ码值大于大写开头的字符;都是小写的,字母顺序排在前面的小于后面的字符;都是大写的,字母顺序排在前面的小于后面的字符。
String对象的数据值比较:valueOf()
逻辑运算符:判定多个条件的情况
&& 与 两个条件都必须为真 一假全假
|| 或 其中一个或两个必须为真 一真全真
! 非 原逻辑相反 真假相反
2)typeof运算符
返回值:
undefined
boolean
number
string
object
3)instanceof 运算符
用于识别正在处理对象的类型,这个方法要求必须确认对象为某特定的类型。
4)一元运算符
4—1)Delete 运算符 :删除对以前对象属性及方法的引用,但不能删除未定义属性和方法;
4—2)Void 运算符 :其对任何值都返回underfined ,用于避免输出不应该输出的值;
示例:
1、 <a href="javascript:window.open('about:blank')">点击链接</a> 输出:[object]
2、 <a href="javascript:void(window.open('about:blank'))">点击我</a>
4—3)前增量/前减量运算符
++变量名;
--变量名;
4—4)后增量/后减量运算符
变量名++ ;
变量名-- ;
4—5)一元加法和一元减法
4—6)位运算符
位运算not (~)
位运算and (&)
位运算or (|)
位运算XOR(^)
4—7)左移运算(<<)
4—8)有符号右移运算(>>)
4—9)无符号右移运算(>>>)
5)Boolean 运算符
5—1)逻辑not
运算符是对象,返回false ;
运算符数字是0,返回true ;
运算数是0以外的任何数字,返回faulse ;
运算数是null,返回true ;
运算符是NaN , 返回true ;
运算数是underfined ,返回错误;
5—2)逻辑and (&&)
5—3)逻辑or
6)乘性运算符
6—1)乘法运算符 (*)
6—2)除法运算符 (/)
6—3)取模运算符 (%)
7)加性运算符
7—1)加法运算符 (+)
7—2)减法运算符 (-)
8)关系运算符
< > <= >=
9)等性运算符
9—1)等号和非等号 (= 和 !=)
9—2)全等号和非全等号 (= = = 和 != =)
10)条件运算符
形式:
variable = boolean_expression ? true_value : false_value ;
11)赋值运算符
简单运算符:(=)
复合运算符 :(* = 、/* 、 %= 、+= 、 -= 、<<= 、 >>= 、 >>>=)
12)逗号运算符 (,)
Undefined类型
当变量未初始化,该变量的默认值是underfined ,返回true;
Null 类型
Underfined 类型是由Null类型派生,null ==undefined
Boolean类型
有两个值,即true和false
Number 类型 :所有数学运算都返回十进制结果
String 类型
= = = 转换字符串 :toString
转换数字 :parseInt
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' 匹配换行符。序列 '//' 匹配 "/",而 '/(' 则匹配 "("。 |
^ | 匹配输入字符串的开始位置,除非在方括号表达式中使用,此时它表示不接受该字符集合。要匹配 ^ 字符本身,请使用 /^。 |
{ | 标记限定符表达式的开始。要匹配 {,请使用 /{。 |
| | 指明两项之间的一个选择。要匹配 |,请使用 /|。 |
构造正则表达式的方法和创建数学表达式的方法一样。也就是用多种元字符与操作符将小的表达式结合在一起来创建更大的表达式。正则表达式的组件可以是单个的字符、字符集合、字符范围、字符间的选择或者所有这些组件的任意组合。
全部字符集:
字符 | 描述 |
/ | 将下一个字符标记为一个特殊字符、或一个原义字符、或一个 向后引用、或一个八进制转义符。例如,'n' 匹配字符 "n"。'/n' 匹配一个换行符。序列 '//' 匹配 "/" 而 "/(" 则匹配 "("。 |
^ | 匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 '/n' 或 '/r' 之后的位置。 |
$ | 匹配输入字符串的结束位置。如果设置了RegExp 对象的 Multiline 属性,$ 也匹配 '/n' 或 '/r' 之前的位置。 |
* | 匹配前面的子表达式零次或多次。例如,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?'。请注意在逗号和两个数之间不能有空格。 |
? | 当该字符紧跟在任何一个其他限制符 (*, +, ?, {n}, {n,}, {n,m}) 后面时,匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。例如,对于字符串 "oooo",'o+?' 将匹配单个 "o",而 'o+' 将匹配所有 'o'。 |
. | 匹配除 "/n" 之外的任何单个字符。要匹配包括 '/n' 在内的任何字符,请使用象 '[./n]' 的模式。 |
(pattern) | 匹配 pattern 并获取这一匹配。所获取的匹配可以从产生的 Matches 集合得到,在VBScript 中使用 SubMatches 集合,在JScript 中则使用 $0…$9 属性。要匹配圆括号字符,请使用 '/(' 或 '/)'。 |
(?:pattern) | 匹配 pattern 但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用。这在使用 "或" 字符 (|) 来组合一个模式的各个部分是很有用。例如, 'industr(?:y|ies) 就是一个比 'industry|industries' 更简略的表达式。 |
(?=pattern) | 正向预查,在任何匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如,'Windows (?=95|98|NT|2000)' 能匹配 "Windows 2000" 中的 "Windows" ,但不能匹配 "Windows 3.1" 中的 "Windows"。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。 |
(?!pattern) | 负向预查,在任何不匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如'Windows (?!95|98|NT|2000)' 能匹配 "Windows 3.1" 中的 "Windows",但不能匹配 "Windows 2000" 中的 "Windows"。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始 |
x|y | 匹配 x 或 y。例如,'z|food' 能匹配 "z" 或 "food"。'(z|f)ood' 则匹配 "zood" 或 "food"。 |
[xyz] | 字符集合。匹配所包含的任意一个字符。例如, '[abc]' 可以匹配 "plain" 中的 'a'。 |
[^xyz] | 负值字符集合。匹配未包含的任意字符。例如, '[^abc]' 可以匹配 "plain" 中的'p'。 |
[a-z] | 字符范围。匹配指定范围内的任意字符。例如,'[a-z]' 可以匹配 'a' 到 'z' 范围内的任意小写字母字符。 |
[^a-z] | 负值字符范围。匹配任何不在指定范围内的任意字符。例如,'[^a-z]' 可以匹配任何不在 'a' 到 'z' 范围内的任意字符。 |
/b | 匹配一个单词边界,也就是指单词和空格间的位置。例如, 'er/b' 可以匹配"never" 中的 'er',但不能匹配 "verb" 中的 'er'。 |
/B | 匹配非单词边界。'er/B' 能匹配 "verb" 中的 'er',但不能匹配 "never" 中的 'er'。 |
/cx | 匹配由 x 指明的控制字符。例如, /cM 匹配一个 Control-M 或回车符。x 的值必须为 A-Z 或 a-z 之一。否则,将 c 视为一个原义的 'c' 字符。 |
/d | 匹配一个数字字符。等价于 [0-9]。 |
/D | 匹配一个非数字字符。等价于 [^0-9]。 |
/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。 |
/w | 匹配包括下划线的任何单词字符。等价于'[A-Za-z0-9_]'。 |
/W | 匹配任何非单词字符。等价于 '[^A-Za-z0-9_]'。 |
/xn | 匹配 n,其中 n 为十六进制转义值。十六进制转义值必须为确定的两个数字长。例如,'/x41' 匹配 "A"。'/x041' 则等价于 '/x04' & "1"。正则表达式中可以使用 ASCII 编码。. |
/num | 匹配 num,其中 num 是一个正整数。对所获取的匹配的引用。例如,'(.)/1' 匹配两个连续的相同字符。 |
/n | 标识一个八进制转义值或一个向后引用。如果 /n 之前至少 n 个获取的子表达式,则 n 为向后引用。否则,如果 n 为八进制数字 (0-7),则 n 为一个八进制转义值。 |
/nm | 标识一个八进制转义值或一个向后引用。如果 /nm 之前至少有 nm 个获得子表达式,则 nm 为向后引用。如果 /nm 之前至少有 n 个获取,则 n 为一个后跟文字 m 的向后引用。如果前面的条件都不满足,若 n 和 m 均为八进制数字 (0-7),则 /nm 将匹配八进制转义值 nm。 |
/nml | 如果 n 为八进制数字 (0-3),且 m 和 l 均为八进制数字 (0-7),则匹配八进制转义值 nml。 |
/un | 匹配 n,其中 n 是一个用四个十六进制数字表示的 Unicode 字符。例如, /u00A9 匹配版权符号 (?)。 |
复杂模式:
分组()
反向引用(?)
候选(|)
非捕获性分组(?:)
前瞻 :正向前瞻(?=和) 负向前瞻(?!和)
(?:pattern) | 匹配 pattern 但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用。这在使用 "或" 字符 (|) 来组合一个模式的各个部分是很有用。例如, 'industr(?:y|ies) 就是一个比 'industry|industries' 更简略的表达式。 |
(?=pattern) | 正向预查,在任何匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如, 'Windows (?=95|98|NT|2000)' 能匹配 "Windows 2000" 中的 "Windows" ,但不能匹配 "Windows 3.1" 中的 "Windows"。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。 |
(?!pattern) | 负向预查,在任何不匹配Negative lookahead matches the search string at any point where a string not matching pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如'Windows (?!95|98|NT|2000)' 能匹配 "Windows 3.1" 中的 "Windows",但不能匹配 "Windows 2000" 中的 "Windows"。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始 |
边界:
边界 | 描述 |
^ | 行开头 |
$ | 行结尾 |
/b | 单词的边界 |
/B | 非单词的边界 |
多行模式
RegExp对象
lastIndex 整数,代表下次将会从哪个字符开始
常用模式
验证日期 、验证信用卡号 、验证电子邮件地址
9、 对象 【重点 熟练应用】
1、 Window窗口对象
属性 | 主要属性:Name ,Length ,Parent ,Self ,Top ,Status ,Default Status , Opener ,Closed |
Left 窗口左坐标,不能为负; Top 窗口上坐标,不能为负; Height 窗口高度 ,不能小于100; Width 窗口宽度 ,不能小于100; Resizable 能否拖动边线调整大小,默认no; Scrollable 可视窗口容不下要显示的内容,是否允许滚动,默认no; Toolbar 是否显示工具栏,默认no; Status 是否显示状态栏,默认no; Location 是否显示web地址栏,默认no; Default Status 和 Status 属性都是在窗口中使用,在窗口的状态条上显示状态信息。 Default Status 是设置显示默认的状态栏信息;Status 是当一个事件执行时显示状态信息。 | |
方法 | open() :打开一个新的窗口;如下: window.open(url, null,"height=100,width=100,status=yes,toolbar=no,menuba=no,location=no") 系统对话框:alert 、promp 、confirm alert() :弹出一个提示对话框; prompt() : confirm(“ ”) :自定消息框信息,弹出一个可供选择“确定”和“取消”对话框; setTimeout() :设置时间间隔和暂停; showModalDialog() :创建对话框,只有一个close()方法; focus() :捕获焦点的位置 |
2、 document对象
属性 | 主要属性:alinkColor bgColor cookie domain embeds fgColor layers linkColor location title URL vlinkColor |
alinkColor :激活链接的颜色; bgColor :改变页面的背景颜色; fgColor :页面文本的颜色; lastModified :最后修改页面的日期,是字符串; linkColor :链接的颜色; referrer :浏览器历史中后退一个位置的URL ; title :<title />标签中显示的文本; URL :当前载入的页面的URL; vlinkColor :访问过的链接的颜色;
anchors :页面中所有锚的集合,输出指定的对象;(<a name=””></a>) applets :页面中所有applets的集合; embeds :页面中所有嵌入式对象的集合 (<embed />) cookie :一段字符串信息值; images :页面中所有图像的集合; links :页面中所有链接的集合;(<a href = “”></a>) forms :页面中所有表单的集合,定位表单对象和元素 | |
方法 | Write() Writen() :换行(回车) Close() :关闭窗口 getSelection() :捕获用户浏览页面的文本 |
3、 文本对象
属性 | defaultValue form name type value defaultValue :设置缺省值 name :文本对象名称 value : |
方法 | Focus() :聚焦,将光标放置在文本对象的文本的开始处; Select() :选定文本对象中的文本; |
事件 | onChange() |
文本域对象 |
|
4、 按钮对象
| button 按钮 submit 提交 reset 复位 复选框对象:checked defaultChecked name value Radio对象 :name value |
|
|
5、 选择和隐藏对象
| Select 对象 |
| Hidden |
6、 location对象 (表示载入窗口的URL)
属性 | hash属性 :调整web在浏览器的位置;如果URL中包含#,该方法将返回该符号之后的内容; host :服务器的名字; hostname :通常等于host,可以省略www; href 属性 :当前载入页面的完整的URL,超文本对象引用 pathname 属性 :URL中主机后的部分,反斜杠(/); port :URL中声明的请求的端口; protocol 属性 :通信协议(//) search :执行get请求的URL中的问号;又称查询字符串; |
方法 | reload () :重新载入当前页面 : 从浏览器缓存中重载(false) :location.load(false) 从服务器端重载 (true) :location.load(true) |
Location对象是window对象和document对象的属性,所以window.location和document.location互相等价,可以交换使用。 |
7、 history对象
属性 | length |
方法 | back() forward() go() :windows.history.go(-1);后退一页 |
8、 layer对象
属性 | above below siblingAbove siblingBelow background 层背景图 clip 属性 :top left bottom right width height left top name src
|
方法 | Load(“url” , newlayerWidth) moveAbove() moveBelw() |
9、 字符串对象
转义字符 ' /" 双引号' " /' 单引号" "// 反斜杠" "/b 退格" "/t TAB" " /n 换行" "/r 回车" "/f 进格" | |
属性 | string.length 字符串的长度 |
方法 | + : 字符串连接; charAt :string.charat(index) 从字符串中返回某个字符;index参数是用来获取字符的位置; indexOf :string.indexOf(string,index) 从一个特定的位置开始查找设置的字符; lastIndexOf :从字符串尾部开始检索; substring :string.substring(index1,index2) 字符串截取,截取结果包括较小的字符串位置; toLowerCase :大写转换小写字符,先调用这个方法,再输出; toUpperCase :小写转换大写字符; anchor :string.anchor(anchorname) 创建和显示一个html超文本目标,必须现在html建立锚点; big :设置字体变大; bold :设置字体变粗; fontsize :设置字体的大小; 。。。。。 |
10、 日期对象
属性 | New 创建新日期对象; |
方法 | getYear 年 getMonth 月 设置转换,将获得的值加1; getDate 日 getDay 星期 设置当期日期的星期数,返回整数值 getHours 小时 getMinutes 分钟 getSeconds 秒数 = = = setYear/ Month/Month/Date/Day/Hours/Minutes/Seconds = = = getTimezoneOffset 返回时间差 toGMTString 将日期对象转换为一个字符串,格式:星期、月、日、年、时、分、秒 toLocaleString 将日期对象转换为本地日期格式,显示格式依赖于系统平台。
|
11、 数学对象
属性 | Math.E 欧拉常数,是自然对数的底数,数值为:2.71828 |
方法 | abs 求绝对值 Math.abs(参数) acos 求反余弦函数值 Math.acos(参数) max 比较大小函数 Math.max(参数1, 参数2),返回最大的值 round 四舍五入 Math.round(参数) ,逢五进一 floor 舍去小数部分取整 Math.floor(参数) ceil 求平均值,求大于或等于值 Math.ceil(参数) random 产生0和1之间的随机数 Math.random()
|
12、 数组对象
属性 |
|
方法 |
|
数组对象的创建—数组扩充:示例 <script type=”text/javascript”> function student(name,age){ this.name = name; this.age = age; } stu1 = new student(“刘德华”,50); document.write(stu1.name); document.write(stu1.age); </script> | |
对象类数组: var a = new Array(2); a[0]=0; a[1]=1; document.write(a[0]); document.write(a[1]); |
13、 navigator对象
用于判断浏览器页面采用的哪种浏览器
属性/方法 | 参照IE浏览器输出 |
document.write(navigator.appCodeName); 浏览器代码名称 | Mozilla |
document.write(navigator.appMinorVersion); 额外版本信息 | 0 |
document.write(navigator.appName); 官方浏览器名称 | Microsoft Internet Explorer |
document.write(navigator.appVersion);
浏览器版本信息 | 4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 2.0.50727) |
document.write(navigator.browserLanguage); 浏览器或操作系统语言 | zh-cn |
document.write(navigator.cookieEnabled); 是否启用了cookie的blooean值 | true |
document.write(navigator.cpuClass); Cpu类别 | x86 |
document.write(navigator.javaEnabled()); 是否启用了java的boolean值 | true |
document.write(navigator.language); 浏览器语言 | Undefined (IE不支持) |
document.write(navigator.mimeTypes); 注册到浏览器的mime类型数组 | Undefined (IE不支持) |
document.write(navigator.onLine); 是否连接到Internet | true |
document.write(navigator.oscpu); 操作系统或CPU | Undefined (IE不支持) |
document.write(navigator.platform); 运行浏览器的计算机平台 | Win32 |
document.write(navigator.plugins); 安装在浏览器中插件的数组 | [object] |
document.write(navigator.product); 产品名 | Undefined (IE不支持) |
document.write(navigator.productSub); 产品的额外信息 | Undefined (IE不支持) |
document.write(navigator.opsProfile); | Null (IE不支持) |
document.write(navigator.securityPolicy); | Undefined (IE不支持) |
document.write(navigator.systemLanguage); 操作系统语言 | zh-cn |
document.write(navigator.taintEnabled()); 是否启用数据感染的Boolean值 | false |
document.write(navigator.userAgent);
用户代理 | Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR2.0.50727) |
document.write(navigator.userLanguage); 操作系统语言 | zh-cn |
document.write(navigator.userProfile); 允许访问浏览器用户档案的对象 | null |
document.write(navigator.vendor); 品牌浏览器名称 | Undefined (IE不支持) |
document.write(navigator.vendorSub); 品牌浏览器的额外信息 | Undefined (IE不支持) |
14、 screen对象
用于获取用户屏幕的信息
属性 | availHeight :窗口使用的屏幕的高度; availWidth :窗口使用的屏幕的宽度; colorDepth :用户使用的颜色数; height :屏幕的高度; width :屏幕的宽度 |
10、 DOM
DOM是“Document Object Model”(文档对象模型)的首字母缩写
1)访问节点:
访问html元素:var oHtml=document.documentElement;
获取head元素:var oHead=oHtml.firstChild;
获取body元素:var oBody=oHtml.lastChild; 或者 var oBody=document.body;
2)检测节点类型
通过节点的nodeType属性来检验节点类型:
alert(document.nodeType); //输出9
各常量名称与数值对照表如下:
ELEMENT_NODE 1
ATTRIBUTE_NODE 2
TEXT_NODE 3
CDATA_SECTION_NODE 4
ENTITY_REFERENCE_NODE 5
ENTITY_NODE 6
PROCESSING_INSTRCTION_NODE 7
COMMENT_NODE 8
DOCUMENT_NODE 9
DOCUMENT_TYPE_NODE 10
DOCUMENT_FRAGMENT_NODE 11
NOTATION_NODE 12
3)访问指定节点
1、 getElementsByTagName() 获取标签名
2、 getElementsByName() 获取name特性等于指定值的元素;获取标签的名称
<input type="radio" name="redColor" value="red" />
<script type="text/javascript">
var d = document.getElementsByName("redColor");
document.write(d[0].getAttribute("value"));
</script>
3、 getElementById() 返回id特性等于指定的元素;
4)创建和操作节点:
一张IE(6.0)和FF对DOM Level1的创建新节点方法支持的对照表:
方法 IE FF
createAttribute(name) Y Y
createCDATASection(text) N Y
createComment(text) Y Y
createDocumentFragment() Y Y
createElement(tagName) Y Y
createEntityReference(name) N Y
createProcessingInstruction(target,data) Y N
createTextNode(text) Y Y
createElement() 创建标签元素
createTextNode() 创建文本节点
appendChild() 把文本节点追加到标签元素中
removeChild() 删除节点
replaceChild() 替换节点
insertBefore() 插入节点
注意:replaceChild和insertBefore两个参数都是新节点在前,旧节点在后。
5)Table方法
6)遍历DOM
NodeIterator
TreeWalker
11、 事件
冒泡型事件:从最特定的事件目标到最不特定的事件目标的顺序触发;
捕获型事件:从最不确定的对象触发,然后到最精确;
事件处理函数/监听函数:
Click 点击 load 载入 mouseover 鼠标经过
用于相应某个事件而调用的函数称为事件处理函数;
事件处理函数必须为小写,才能正确响应事件;
attacheEvent 函数:事件处理函数添加;
detachEvent 函数:在事件处理函数中查找指定的函数,并移除它;
DOM addEventListener() :分配事件处理函数;
DOM removeEventListener() :移除事件处理函数
DOM 方法必须三个参数:事件名称,要分配的函数,处理函数的冒泡阶段和捕获阶段,如果是用在捕获阶段,第三个参数为true;用于冒泡阶段,则为false;
事件类型(不在展开描述,掌握鼠标事件即可,其他的可参考js内置对象):
鼠标事件
键盘事件
Html事件
变化事件
跨平台事件
表单事件:
访问表单字段(id):document.getElementById()
聚焦:forcus()
提交表单:submit()
重置表单:reset()
选择文本:select()
自动切换到下一个输入框:tabForward()
限制textarea的字符数:isNotMax()
禁止粘贴:onpaste
创建自动提示的文本框
12 拖放
拖放事件:
dragstart
drag
dragend
放置鼠标事件:
dragenter ——dragover ——dragleave——drop
数据传输对象:dataTransfer
getData() 获取 setData() 存储的值
dropEffect
effectAllowed
dragDrop()方法:初始化系统拖放事件
zDragDrop模拟拖放过程对象,需要下载zdragdroplib.js包
附:鼠标事件
一般事件 | ||
事件 | 浏览器支持 | 描述 |
onClick | HTML: 2 | 3 | 3.2 | 4 | 鼠标点击事件,多用在某个对象控制的范围内的鼠标点击 |
onDblClick | HTML: 2 | 3 | 3.2 | 4 | 鼠标双击事件 |
onMouseDown | HTML: 2 | 3 | 3.2 | 4 | 鼠标上的按钮被按下了 |
onMouseUp | HTML: 2 | 3 | 3.2 | 4 | 鼠标按下后,松开时激发的事件 |
onMouseOver | HTML: 2 | 3 | 3.2 | 4 | 当鼠标移动到某对象范围的上方时触发的事件 |
onMouseMove | HTML: 2 | 3 | 3.2 | 4 | 鼠标移动时触发的事件 |
onMouseOut | HTML: 2 | 3 | 3.2 | 4 | 当鼠标离开某对象范围时触发的事件 |
onKeyPress | HTML: 2 | 3 | 3.2 | 4 | 当键盘上的某个键被按下并且释放时触发的事件.[注意:页面内必须有被聚焦的对象] |
onKeyDown | HTML: 2 | 3 | 3.2 | 4 | 当键盘上某个按键被按下时触发的事件[注意:页面内必须有被聚焦的对象] |
onKeyUp | HTML: 2 | 3 | 3.2 | 4 | 当键盘上某个按键被按放开时触发的事件[注意:页面内必须有被聚焦的对象] |
页面相关事件 | ||
事件 | 浏览器支持 | 描述 |
onAbort | HTML: 2 | 3 | 3.2 | 4 | 图片在下载时被用户中断 |
onBeforeUnload | HTML: 2 | 3 | 3.2 | 4 | 当前页面的内容将要被改变时触发的事件 |
onError | HTML: 2 | 3 | 3.2 | 4 | 捕抓当前页面因为某种原因而出现的错误,如脚本错误与外部数据引用的错误 |
onLoad | HTML: 2 | 3 | 3.2 | 4 | 页面内空完成传送到浏览器时触发的事件,包括外部文件引入完成 |
onMove | HTML: 2 | 3 | 3.2 | 4 | 浏览器的窗口被移动时触发的事件 |
onResize | HTML: 2 | 3 | 3.2 | 4 | 当浏览器的窗口大小被改变时触发的事件 |
onScroll | HTML: 2 | 3 | 3.2 | 4 | 浏览器的滚动条位置发生变化时触发的事件 |
onStop | HTML: 2 | 3 | 3.2 | 4 | 浏览器的停止按钮被按下时触发的事件或者正在下载的文件被中断 |
onUnload | HTML: 2 | 3 | 3.2 | 4 | 当前页面将被改变时触发的事件 |
表单相关事件 | ||
事件 | 浏览器支持 | 描述 |
onBlur | HTML: 2 | 3 | 3.2 | 4 | 当前元素失去焦点时触发的事件 [鼠标与键盘的触发均可] |
onChange | HTML: 2 | 3 | 3.2 | 4 | 当前元素失去焦点并且元素的内容发生改变而触发的事件 [鼠标与键盘的触发均可] |
onFocus | HTML: 2 | 3 | 3.2 | 4 | 当某个元素获得焦点时触发的事件 |
onReset | HTML: 2 | 3 | 3.2 | 4 | 当表单中RESET的属性被激发时触发的事件 |
onSubmit | HTML: 2 | 3 | 3.2 | 4 | 一个表单被递交时触发的事件 |
滚动字幕事件 | ||
事件 | 浏览器支持 | 描述 |
onBounce | HTML: 2 | 3 | 3.2 | 4 | 在Marquee内的内容移动至Marquee显示范围之外时触发的事件 |
onFinish | HTML: 2 | 3 | 3.2 | 4 | 当Marquee元素完成需要显示的内容后触发的事件 |
onStart | HTML: 2 | 3 | 3.2 | 4 | 当Marquee元素开始显示内容时触发的事件 |
编辑事件 | ||
事件 | 浏览器支持 | 描述 |
onBeforeCopy | HTML: 2 | 3 | 3.2 | 4 | 当页面当前的被选择内容将要复制到浏览者系统的剪贴板前触发的事件 |
onBeforeCut | HTML: 2 | 3 | 3.2 | 4 | 当页面中的一部分或者全部的内容将被移离当前页面[剪贴]并移动到浏览者的系统剪贴板时触发的事件 |
onBeforeEditFocus | HTML: 2 | 3 | 3.2 | 4 | 当前元素将要进入编辑状态 |
onBeforePaste | HTML: 2 | 3 | 3.2 | 4 | 内容将要从浏览者的系统剪贴板传送[粘贴]到页面中时触发的事件 |
onBeforeUpdate | HTML: 2 | 3 | 3.2 | 4 | 当浏览者粘贴系统剪贴板中的内容时通知目标对象 |
onContextMenu | HTML: 2 | 3 | 3.2 | 4 | 当浏览者按下鼠标右键出现菜单时或者通过键盘的按键触发页面菜单时触发的事件 [试试在页面中的<body>中加入onContentMenu="return false"就可禁止使用鼠标右键了] |
onCopy | HTML: 2 | 3 | 3.2 | 4 | 当页面当前的被选择内容被复制后触发的事件 |
onCut | HTML: 2 | 3 | 3.2 | 4 | 当页面当前的被选择内容被剪切时触发的事件 |
onDrag | HTML: 2 | 3 | 3.2 | 4 | 当某个对象被拖动时触发的事件 [活动事件] |
onDragDrop | HTML: 2 | 3 | 3.2 | 4 | 一个外部对象被鼠标拖进当前窗口或者帧 |
onDragEnd | HTML: 2 | 3 | 3.2 | 4 | 当鼠标拖动结束时触发的事件,即鼠标的按钮被释放了 |
onDragEnter | HTML: 2 | 3 | 3.2 | 4 | 当对象被鼠标拖动的对象进入其容器范围内时触发的事件 |
onDragLeave | HTML: 2 | 3 | 3.2 | 4 | 当对象被鼠标拖动的对象离开其容器范围内时触发的事件 |
onDragOver | HTML: 2 | 3 | 3.2 | 4 | 当某被拖动的对象在另一对象容器范围内拖动时触发的事件 [活动事件] |
onDragStart | HTML: 2 | 3 | 3.2 | 4 | 当某对象将被拖动时触发的事件 |
onDrop | HTML: 2 | 3 | 3.2 | 4 | 在一个拖动过程中,释放鼠标键时触发的事件 |
onLoseCapture | HTML: 2 | 3 | 3.2 | 4 | 当元素失去鼠标移动所形成的选择焦点时触发的事件 |
onPaste | HTML: 2 | 3 | 3.2 | 4 | 当内容被粘贴时触发的事件 |
onSelect | HTML: 2 | 3 | 3.2 | 4 | 当文本内容被选择时的事件 |
onSelectStart | HTML: 2 | 3 | 3.2 | 4 | 当文本内容选择将开始发生时触发的事件 |
数据绑定 | ||
事件 | 浏览器支持 | 描述 |
onAfterUpdate | HTML: 2 | 3 | 3.2 | 4 | 当数据完成由数据源到对象的传送时触发的事件 |
onCellChange | HTML: 2 | 3 | 3.2 | 4 | 当数据来源发生变化时 |
onDataAvailable | HTML: 2 | 3 | 3.2 | 4 | 当数据接收完成时触发事件 |
onDatasetChanged | HTML: 2 | 3 | 3.2 | 4 | 数据在数据源发生变化时触发的事件 |
onDatasetComplete | HTML: 2 | 3 | 3.2 | 4 | 当来子数据源的全部有效数据读取完毕时触发的事件 |
onErrorUpdate | HTML: 2 | 3 | 3.2 | 4 | 当使用onBeforeUpdate事件触发取消了数据传送时,代替onAfterUpdate事件 |
onRowEnter | HTML: 2 | 3 | 3.2 | 4 | 当前数据源的数据发生变化并且有新的有效数据时触发的事件 |
onRowExit | HTML: 2 | 3 | 3.2 | 4 | 当前数据源的数据将要发生变化时触发的事件 |
onRowsDelete | HTML: 2 | 3 | 3.2 | 4 | 当前数据记录将被删除时触发的事件 |
onRowsInserted | HTML: 2 | 3 | 3.2 | 4 | 当前数据源将要插入新数据记录时触发的事件 |
外部事件 | ||
事件 | 浏览器支持 | 描述 |
onAfterPrint | HTML: 2 | 3 | 3.2 | 4 | 当文档被打印后触发的事件 |
onBeforePrint | HTML: 2 | 3 | 3.2 | 4 | 当文档即将打印时触发的事件 |
onFilterChange | HTML: 2 | 3 | 3.2 | 4 | 当某个对象的滤镜效果发生变化时触发的事件 |
onHelp | HTML: 2 | 3 | 3.2 | 4 | 当浏览者按下F1或者浏览器的帮助选择时触发的事件 |
onPropertyChange | HTML: 2 | 3 | 3.2 | 4 | 当对象的属性之一发生变化时触发的事件 |
onReadyStateChange | HTML: 2 | 3 | 3.2 | 4 | 当对象的初始化属性值发生变化时触发 |