JavaScript 常用方法总结(一)

admin | 世界杯冰岛

一、JavaScript的简单介绍

JavaScript是一种属于网络的脚本语言(简称JS),已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。通常JavaScript脚本是通过嵌入在HTML中来实现自身的功能的。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。

JavaScript代码常存在于HTML文档中,被script标签所包裹。为了方便多个HTML使用同一份JavaScript代码,也可以将JavaScript代码写在js文件中,需要在HTML文档中使用,导入即可。

1

7

使用HTML文档导入JavaScript代码

注:script标签可放在HTML文档的head标签内,但建议将其放置在body标签内部的最下方(这样写浏览器会先加载网页的内容,再加载其动态效果)。

二、JavaScript的基本数据类型

JavaScript的基本数据类型有数字(在JS中,数字不区分整型和浮点类型)、数组,字符串,布尔(只用两个值,true和false)。

在JavaScript中申明一个变量:

1 PI = 3.14 // 声明一个全局变量,赋值3.14, 数字类型

2

3 var a = 6; // 声明一个局部变量a,为其赋值6,是数字类型

4 var b = [1,2,3,4] // 数组

5 var c = "hell world" // 字符串

6 var d = true // 布尔类型

7 var e = {'k1':v1, 'k2':v2, 'k3':v3} //字典

8

9 c = null // 清空变量c

字符串类型的常用方法:

1 "string".length 返回字符串长度

2

3 " string ".trim() 移除字符串的空白

4 " string ".trimLeft() 移除字符串左侧的空白

5 " string ".trimRight) 移除字符串右侧的空白

6 "string".charAt(n) 返回字符串中的第n个字符

7 "string".concat(string2, string3, ...) 拼接

8 "string".indexOf(substring,start) 子序列起始位置

9 "string".lastIndexOf(substring,start) 子序列终止位置

10 "string".substring(from, to) 根据索引获取子序列

11 "string".slice(start, end) 切片

12 "string".toLowerCase() 将字符串转为大写

13 "string".toUpperCase() 将字符串抓为小写

14 "string".split(delimiter, limit) 以特定字符分割字符串

15

16 // 与正则表达式搭配使用

17 "string".search(regexp) 从头开始匹配,返回匹配成功的第一个位置(g无效)

18 "string".match(regexp) 全局搜索,如果正则中有g表示找到"string".replace(regexp, replacement) 替换,正则中有g则替换所有,否则只替换第一个匹配项,

19 $数字:匹配的第n个组内容;

20 $&:当前匹配的内容;

21 $`:位于匹配子串左侧的文本;

22 $':位于匹配子串右侧的文本

23 $$:直接量$符号

数组类型的常用方法:

1 obj.length 数组的大小

2

3 obj.push(ele) 尾部追加元素

4 obj.pop() 从尾部弹出元素

5 obj.unshift(ele) 头部插入元素

6 obj.shift() 头部移除元素

7

8 // 可用此句完成对数组的插入,删除,替换操作

9 obj.splice(start, deleteCount, value, ...) 从start位置开始,删除deleteCount个元素,插入value,...

10

11 obj.slice( ) 切片

12 obj.reverse( ) 反转

13 obj.join(sep) 将数组元素连接起来以构建一个字符串

14 obj.concat(val,..) 连接数组

15 obj.sort( ) 对数组元素进行排序

四、JavaScript的选择和循环语句

与其他编程语言类型,JS也有三种程序执行流程,即顺序,选择,和循环。

1 if (判断条件){

2 // js代码

3 }else if(判断条件){

4 // js代码

5 }else{

6 // js代码

7 }

8

9 // 常用判断符号与逻辑符号

10 && 逻辑与

11 || 逻辑或

12 > < 大于 小于

13 == != 判断值

14 === !== 判断值和类型

选择语句_1

1 // x代指变量,case为x不动的取值情况,defult当上面的case都不满足执行defult,相当于else

2 switch(x){

3 case '1':

4 var i = 1;

5 break;

6 case '2':

7 var i = 2;

8 break;

9 case '3':

10 var i = 3;

11 break;

12 defult:

13 i = 0;

14 }

选择语句_2

1 1. 循环时循环的是索引

2 a = [11,22,33];

3 for (var item in a){

4 console.log(a[item]); // 在浏览器的console中打印a[item]的值,item是索引

5 }

6

7

8 a = {'k1':'v1', 'k2':'v2', 'k3':'v3'};

9 for (var item in a){

10 console.log(a[item]);

11 }

12

13 2. 常规for循环

14 for (var i=0; i<10; i++){

15 //js代码

16 }

for循环

1 var len = 10;

2 var i = 0;

3 while(i < len){

4 console.log(i); // 代指js代码

5 i++;

6 }

while循环

五、JavaScript的函数申明

与其他编程语言类型,JS也有函数,在JS中申明一个函数特别简单。

1 // 常规函数

2 function funcname(a, b, c) {

3 var a = 0; // JS代码块

4 }

1 // 匿名函数,匿名函数只有某一块代码使用,在声明时已经确定由谁来执行它

2 setIntervar(function(){

3 console.log(123); // js代码块

4 }, 5000)

1 // 自执行函数,函数声明完后立即执行并且不会被其他代码调用

2 (function(arg){

3 console.log(arg); //js代码块

4 })(1)

六、JS面向对象

在JavaScript中,面向对象其实是函数的一种变种,与函数的定义非常类似。

方式一:

1 // 定义一个类

2 function Foo(n){

3 this.name = n; // 属性

4 // 方法

5 this.sayHello = function(){

6 console.log("hello,", name);

7 }

8 }

9

10 // 实例化一个对象

11 var obj = new Foo('abc');

12 obj.name; // 调用属性

13 obj.sayHello(); // 调用方法

方式二:

1 function Foo(n){

2 this.name = n;

3 }

4

5 Foo.prototype = {

6 'sayHello': function(){

7 console.log("hello,", this.name);

8 }

9 }

10

11 var obj = new Foo('abc');

12 obj.name;

13 obj.sayHello();

注:通常使用方式二来定义和使用一个对象。

七、JavaScript中常用的系统方法

1. 定时器,每隔特定的时间执行一次特定的任务,用途十分广泛。

1 var a = setInterval(function(){console.log('hello');}, 间隔时间);

2

3 clearInterval(a); // 清除定时器

2. 超时器,设置一段时间,比如5秒钟,当时间超过5秒钟后执行某一任务。

1 var b = setTimeout(funciton(){console.log('hello')}, 5000); // 设置超时器

2 clearTimeout(b); // 清除超时器,比如当用户执行某一操作后,取消超时器使用它

3. 弹出提示框

1 alert('message') // message代指要提示的信息

4. 弹出确认框

1 // 向用户弹出一个确认框,如果用户选择确认,v=true;否则,v=false。

2

3 var v = confirm('message') // message为确认提示信息,比如真的要删除吗?

5. 刷新页面

1 location.reload(); // 执行此方法浏览器自动刷新当前页面,可以和定时器配合使用用以定时刷新页面

6. 页面跳转

1 location.href // 获取当前页面的url

2 location.href = url; // 从当前页面跳转到指定url,可与超时器配合使用,做网站的页面跳转

3 location.href = location.href; // 与location.reload()效果相同,刷新当前页面

7. eval(使用eval,可将字符串转换成代码执行)

1 var s = '1+2'; 2 var a = eval(s); 3 console.log(a);

8. 序列化

序列化试将一个对象转化成字符串,方便存储,打印等。在任何一门编程语言中都存在序列化。

而反序列化是将读取到的字符串转化为对象,方便程序使用。

在js中,序列化与反序列画的操作如下:

1 ls = [1,2,3,4];

2 s = JSON.stringify(ls); //object ---> string

3 console.log(s);

4 new_ls = JSON.parse(s) //string ---> object

5 console.log(new_ls);

9. 字符串的编码与解码

为了能够在所有计算机上识别出字符串,在传输过程中要对字符串编码,传输完成后要对字符串解码。

1 escape(str) // 对字符串编码

2 unescape(str) // 对字符串解码

3

4 encodeURI() // 对URI编码

5 decodeURI() // 对URI解码与encodeURI() 对应

6 encodeURIComponent() // 对URI编码

7 decodeURIComponent() // 对URI解码与encodeURIComponent() 对应

八、触发JavaScript的事件

当我们用鼠标点击浏览器界面中的一个按钮时就触发了一个事件(即点击事件),类似的还有很多其他事件,比如当鼠标移动到某个标签上,光标选中某个输入框等,这些都是事件,那么就,接下来就介绍一下一些常用的事件。

标签绑定事件的方式:

1 对div标签绑定点击事件

2 方式一:

3

点我

4 方式二:

5

点我

6 tag = document.getElementById("i1");

7 tag.onclick = funciton () {console.log("div i1");};

8 方式三:

9

点我

10 tag = document.getElementById("i2");

11 tag.addEventListener("click", function () {

12 console.log("div i2");

13 }, false);

注:使用方式二和方式三可做到事件与标签相分离,在测试代码时,可以使用方式一绑定标签与事件,在日常编程中建议使用方式二和方式三。

常用的事件有:

1 onclick --- 鼠标点击执行js函数

2 onfocus --- 光标选中执行js函数

3 onblur --- 光标移走执行js函数

4 onmouseover --- 鼠标移到某个标签执行js函数

5 onmouseout --- 鼠标从某个标签移走执行js函数

八、使用JavaScript完成一些常用功能

1. HTML中的模态对话框

1

2

3

4

5 Title

6

7

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

host port
1.1.1.1 1111
1.1.1.2 1112
1.1.1.3 1113

58

59

60

61

62

63

64

65

66

67

68 添加

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

94

95

View Code

2. HTML中的全选,反选,取消按钮

1

2

3

4

5 Title

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

opotion host port
1.1.1.1 1111
1.1.1.2 1112
1.1.1.3 1113
1.1.1.4 1114
1.1.1.4 1114
1.1.1.5 1115

56

57

88

89

View Code

3. 类似于购物商城的左侧菜单栏

1

2

3

4

5 Title

6

7

27

28

29

30

31

32

33

34

35

内容1

36

内容1

37

内容1

38

内容1

39

40

41

42

43

44

内容2

45

内容2

46

内容2

47

内容2

48

49

50

51

52

53

内容3

54

内容3

55

内容3

56

内容3

57

58

59

60

61

62

内容4

63

内容4

64

内容4

65

内容4

66

67

68

69

70

82

83

View Code

4. 鼠标移到标签某行改变其样式,移走恢复

1

2

3

4

5 Title

6

7

8

9

10

11

12

123
123
123

13

14

26

27

View Code

5. 搜索框提示信息

1

2

3

4

5 Title

6

12

13

14

15

16

17

18

19

38

39

View Code