1. 网页中的三剑客
html: 网页内容
css: 网页样式
javascript:网页的交互
2. CSS中的动画
- 旋转
- 平移
- 缩放
3. Javascript的简介
现在我们学习的javascript其实是EcmaScript
下面我们将要学习主流的EcmaScript5的版本(es5)
我们使用javascript可以实现和
用户
和页面
的交互js也是一个跨平台的编程语言
js是由浏览器解释执行的;
4. Javascript和Java的区别
没有关系; 雷锋–>雷峰塔;
js是弱类型语言,java强类型语言;
js是解释型语言,java是编译型语言;
5. 编写第一个js文件
1 | <!DOCTYPE html> |
6. js引入的方式
内嵌方式
1
2
3
4
5
6
7
8
9
10
11
12<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>第一个js</title>
<script>
console.log("hello 新卓越");
</script>
</head>
<body>
</body>
</html>优点: 编写方便
缺点: js的操作和显示和样式没有分离,不建议在生成环境中使用;
外部引入
1
2
3
4
5
6
7
8
9
10
11<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>第一个js</title>
<script src="base.js">
</script>
</head>
<body>
</body>
</html>优点: 显示和样式和操作分离
缺点: 没有缺点
7. js中的变量的定义
1 | <script> |
8. js中的变量的类型
js虽然是弱类型语言,但是还是变量类型的;
- 字符串(string)
- 数字(number)
- 布尔(boolean)
- 数组(Array)
- 对象(object)
- undifine: 变量被定义了,但是没有被赋值;
- null:值为
null
9. js中的标识符
同何编程语言一致
10. js中的命名法
- 大驼峰
- 小驼峰
同何编程语言一致
11. js中的表达式
同任何编程语言一致
表达式: 能得出固定的值的一条代码
“a” 1 10.2: 是表达式 “值表达式”
var a=10; 不是表达式; 变量的定义不是表达式
a=20; 是表达式; 值表达式
12. js流程控制
同java一致
0,’’,””,null,undefine,0.0 :都为false
- 判断
- 循环
- 分支
13. js中的语句的结尾
js中的语句可以不以分号结尾,要求一行只写一条语句;
但是后面有一些第三方的库会对代码进行压缩,不写分号可能会报错的;
建议每一行都加上分号;
14. js中的运算符
和java一致
==:在js中只比较值,不比较类型
===: 在js值不仅比较值,还比较类型;
15. 字符串的拼接
1 | <!--es5中的字符串的拼接--> |
16. js中的函数
函数: 实现特定功能的代码的组合;
函数的定义:
1 | function 函数名称(形参列表) { |
函数的调用:
1 | 函数名称(实参列表) |
17. js中的匿名函数
定义函数时不写函数名称,把函数赋值给一个变量,此变量是函数对象
1 | let func1 = function (a, b) { |
18. 普通函数和匿名函数
普通函数可以使用在前,定义在后;
匿名函数必须先定义才能使用
普通函数和匿名函数中的this
都是Window对象
19. EcmaScript的核心
- 基础语法
- Bom: 浏览器对象模型
- Dom: 文档对象模型
20. js中的数组
数组的定义:
1 | const array = [2, 4, 1, 10]; |
1 | //传递一个参数时,代表数组的长度,传递多个参数是数组中的元素 |
21. js中的数组的遍历
1 | const array1 = [20, 30, "你好", 21.22]; |
1 | const array1 = [20, 30, "你好", 21.22]; |
22. 数组中存放键值对
1 | const array1 = [20, 30, "你好", 21.22]; |
23. 数组中的元素的操作
1 | const array1 = [20, 30, "你好", 21.22]; |
1 | array1.push(100, 200);//给原数组尾部添加元素 |
1 | const array1 = [20, 30, "你好", 21.22]; |
24. js中的面向对象编程
24.1 js中的对象的创建
字面量的方式创建对象
1
2
3
4
5
6
7
8
9
10
11let obj1 = {
name: "admin",
age: 20,
say: function () {
console.log("say....")
}
}
//动态添加属性
obj1.sex ="男"
//动态添加方法
obj1.see= function (){}new Object();方式创建对象
1
2
3
4
5
6
7let obj2 = new Object({
name: "admin",
age: 20,
say: function () {
console.log("say....")
}
});使用构造函数创建对象
1
2
3
4
5
6
7
8
9
10
11
12
13
14function Person(name, age) {
this.name = name;
this.age = age;
}
//原型对象,用来共享属性和方法的
Person.prototype.say = function () {
console.log(this)
}
let p1 = new Person("admin1", 10);
let p2 = new Person("admin2", 20);
p1.say()数据代理(Vue底层的实现)
通过动态的定义一个代理属性(这个代理属性不配置
value
项),可以通过操作代理属性从而操作真实属性1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20let p1 = {
name: 'admin',
age: 20
}
Object.defineProperties(p1, {
_name: {
get() {
console.log("getter....", this)
return this.name;
},
set(v) {
console.log("setter....")
this.name = v;
}
}
});
p1._name = "男一号";
console.log(p1)
25. js中的对象成员的简写
1 | let name = "amdin"; |
26. 箭头函数
箭头函数中的this
指向的是window对象,非当前调用的对象
1 | var obj = { |
27. js中的bom
bom: brower object model(浏览器对象模型)
实时我们学习的bom就是一个对象window
window对象不需要我们创建,js已经给我们创建好了,我们可以直接使用;
1 | window.alert("msg");//提示信息 |
js中的定时器:
1 | window.setTimeout(function () { |
js中的周期执行器:
1 | //返回定时器的id |