day13
HTML中的三把利器的JS 又称为JavaScript,看着好像和Java有点联系,实际上他和java半毛钱关系都没有,JavaScript和我们学习的Python、Go、Java、C++等,都是一种独立的语言,Python的解释器有Python2.7、Python3.x,浏览器具有解释JavaScript的功能,所以它才是HTML的三把利器之一。
在HTML中可以将JavaScript/JS的代码写在head中,被script标签所包裹,当浏览器解释HTML时,遇到style标签时,按照CSS规则解释,遇到Script标签时,按照JavaScript的语法规则解释。
引入JavaScript代码,类似于Python的import
<script src="public.js" type="text/javascript"></script>
head中引入JS与body中引入JS区别
html代码从上而下解析,如果在head中引入JS,影响页面打开的速度,存在风险,所以通常放在htmlbody的最下方,这样页面内容先展示,最后在加载JS。注:写在最下面要有底线,写在body内部的最底下。
注释
单行注释通过 // 多行通过 /* */
JS变量
1
2
3
4
|
默认全局变量
{
局部变量
}
|
JS基本数据类型(JavaScript 声明数据类型通过new)
字符串
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
/定义字符串
;
;
字符串的拼接
/字符串操作
'大师兄'
char字符
y
获取字符串长度
拼接字符串
获取子序列的位置
end
变更为小写
变更大写
x个元素
只有一种数字类型。数字可以带小数点,也可以不带)
;
;
;
字符串转
;
转换成小数
)
false)
;
|
数组类型(就是Python的列表)
1
2
3
4
5
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
|
;
;
;
第二种创建方式
;
第三种创建方式
;
数组操作
;
数组的长度
尾部追啊参数
并删除该元素
并删除该元素
头部插入一个数据
插入、删除或替换数组的元素
指定位置插入元素
指定位置替换元素
指定位置删除元素
;
反转
将数组根据分割符拼接成字符串
数组与数组拼接
排序
|
对象类型(等同于Python的字典)
1
2
3
4
5
|
;
;
;
删除
删除
|
定时器
1
2
3
4
5
6
|
毫秒为单位
{
)
}
可以运行方法
|
JS条件判断语句
1
2
3
4
5
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
|
{
执行代码块
{
执行代码块
{
执行代码块
;
{
)
{
)
{
)
{
)
and
)
or
)
}
{
:
;
;
:
;
;
:
)
}
|
JS循环语句
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
第一种循环
循环的是角标
;
;
;
{
)
}
第二种循环
不支持字典的循环
{
)
}
第三种循环
{
)
}
|
函数定义
1
2
3
4
5
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
1、普通函数
{
执行代码块
}
;
匿名函数没有名字,无法调用时找到,将整个函数当做一个参数传递
{
)
;
3、自执行函数创建函数并且自动执行
js文件都会被解析,从而生成独立的容器,防止调用冲突
{
)
;
作用域
})作为作用域的。
JavaScript是以函数作为作用域
{
;
)
}
;
;
2、函数作用域在函数未被调用之前,已经创建
;
{
;
{
;
}
b
}
;
;
3、函数的作用域存在作用域链(代码不执行时,先生成作用域链)
当函数嵌套函数时,每一个函数为一个作用域,多层就叫做作用域链,查找遵循作用域链规则
{
;
{
'ii'
)
}
;
)
}
;
hhh
{
;
{
)
}
;
;
)
}
;
JavaScript的函数在运行前会找到函数内的所有局部变量执行
;
{
;
;
}
;
|
面向对象
1
2
3
4
5
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
|
this,如果有就可以当做是类来用
__init__
{
;
}
new关键字来创建对象
;
;
类中定义方法,虽然可以用,但是在多个实例时存在重复实例方法,浪费资源
say的方法。
{
;
{
)
}
}
;
;
完善类的定义
{
name
}
Foo中找,没有找到,会在去原型中找
是否有该方法。有执行,没有就报错
{
{
)
}
;
;
;
|
序列化
1
2
|
序列化
反序列化
|
转义
转义中文或特殊字符
1
2
3
4
5
6
7
8
9
10
11
|
url的规范中是不允许出现中文字符或某些特殊字符的,所以要进行转义
给后端那么必须转义
URl中未转义的字符
URI组件中的未转义字符
URI中的转义字符
URI组件中的字符
字符串转义
'大师兄'
对字符串转义
转义字符串解码
|