第一天上午
前端开发工作内容和特点
[HTML]、[CSS]、[JavaScript]是前端开发中最基本也是最必须的三个技能。前端的开发中,在页面的布局时, HTML将元素进行定义,CSS对展示的元素进行定位,再通过JavaScript实现相应的效果和交互。前端工作的核心就是数据展示,ui实现,用户交互,用户体验。配合后端把内容呈现出来。前端的特性也决定了一般不会把复杂的计算逻辑放前端处理。
demo:一行代码给窗口界面上的所有元素加上边框;
web worker
1.线程和进程
如果是windows电脑中,可以打开任务管理器,可以看到有一个后台进程列表。那里就是查看进程的地方,而且可以看到每个进程的内存资源信息以及cpu占有率
-
进程是cpu资源分配的最小单位(是能拥有资源和独立运行的最小单位)(系统会给它分配内存)
-
线程是cpu调度的最小单位(线程是建立在进程的基础上的一次程序运行单位,一个进程中可以有多个线程)
-
不同进程之间也可以通信,不过代价较大
-
现在,一般通用的叫法:单线程与多q线程,都是指在一个进程内的单和多。(所以核心还是得属于一个进程才行)
1.1javascript 单线程
JS如果执行时间过长就会阻塞页面。要尽量避免JS执行时间过长,这样就会造成页面的渲染不连贯,导致页面渲染加载阻塞的感觉。
1.2 web worker 基本概念
1.3 基本用法
代码演示
2.闭包
2.1变量作用域
2.2 从外部读取局部变量
2.3 闭包的用途
2.4 闭包的缺点
2.5 应用
2.6 内存泄漏及解决办法
ECMAScript 6 简介
[ECMAScript 和 JavaScript 的关系]
[ES6 与 ECMAScript 2015 的关系]
[语法提案的批准流程]
[ECMAScript 的历史]
[Babel 转码器]
1. var let 和 const
1.1 作用域
1.2 let 用法
1.3 变量提升
1.4 暂时性死区
1.5 变量重复声明
1.6 块级作用域
1.7 const 用法
1.8 const 本质
2. 字符串扩展
2.1 模板字符串及用法
第一天下午
3.变量的解构赋值
3.1 数组的解构赋值
3.1.1 基本用法
3.1.2 默认值
3.2 对象的解构赋值
3.2.1 简介
3.2.2 默认值
3.2.3 注意点
3.3 字符串解构赋值, 数值和布尔值的解构赋值
3.4 函数参数的解构赋值
3.5 圆括号问题
3.6 变量解构的用途
- 交换变量值
- 从函数返回多个值
- 函数参数定义
- 提取json数据
- 函数参数默认值
- 遍历map结构
- 输入模块的指定方法
4. 函数的扩展
4.1 函数的默认值
4.1.1 基本用法
4.1.2 与解构赋值结合使用
4.1.3 参数默认值的位置
4.1.4 函数length属性
4.1.5 作用域
4.1.6 应用
4.2 rest参数
4.3 严格模式
4.4 name属性
4.5 箭头函数
4.5.1基本用法
4.5.2 箭头函数注意点
4.5.3 不适用场景
4.5.4 嵌套的箭头函数
4.6 函数参数的尾逗号
5.数组的扩展
5.1 扩展运算符
5.1.1 含义
5.1.2 替代apply的用法
5.1.3 扩展运算符的应用
- 复制数组
- 合并数组
- 与解构赋值结合
- 字符串
- 实现了Iterator接口的对象
- Map和Set结构 Generator函数
第二天上午
6.对象的扩展
6.1 属性的简洁表示法
6.2 属性名表达式
6.3 方法的name属性
6.4 spuer关键字
6.5 对象的扩展运算符
6.5.1 结构赋值
6.5.2 扩展运算符
7.对象的新增方法
7.1 Object.is()
7.2 Object.assign()
7.2.1 基本用法
8.promise对象
8.1 promise的含义
8.2基本用法
8.2.1 Promise.prototype.then()
8.2.2 Promise.prototype.catch()
8.3 Promise.prototype.finally()
8.4 Promise.all()
8.5 Promise.race()
8.6 Promise.resolve()
- 参数是一个Promise实例
- 参数是一个thenable对象
- 参数不是具有then方法的对象或者根本不是对象
- 不带任何参数
8.7 Promise.reject()
8.8 应用
8.8.1 加载图片
8.8.2 Generator函数与Promise的结合
8.9 Promise.try()
第二天下午
9. Class的基本语法
9.1 简介
9.1.1 类的由来
9.1.2 constructor方法
9.1.3 类的实例
9.1.4 取值函数(getter)和存值函数(setter)
9.1.5 属性表达式
9.1.6 Class表达式
9.1.7 注意点
1.严格模式
2.不存在提升
3.name属性
4.Generator方法
5.this的指向
9.2 静态方法
9.3 实例属性的新写法
9.4 静态属性
9.5 私有方法和私有属性
9.5.1现有的解决方案
9.5.2 私有属性的提案
9.6 new.target 属性
10 Class的继承
10.1 简介
10.2 Object.getPrototypeOf() 方法获取父类
10.3 super关键字
11 Module的语法
11.1 概述
11.2 严格模式
• 变量必须声明后再使用
• 函数的参数不能有同名属性,否则报错
• 不能使用with语句
• 不能对只读属性赋值,否则报错
• 不能使用前缀 0 表示八进制数,否则报错
• 不能删除不可删除的属性,否则报错
• 不能删除变量delete prop,会报错,只能删除属性delete global[prop]
• eval不会在它的外层作用域引入变量
• eval和arguments不能被重新赋值
• arguments不会自动反映函数参数的变化
• 不能使用arguments.callee
• 不能使用arguments.caller
• 禁止this指向全局对象
• 不能使用fn.caller和fn.arguments获取函数调用的堆栈
• 增加了保留字(比如protected、static和interface)
11.3 export 命令
11.4 import 命令
11.5 模块的整体加载
11.6 export default命令
11.7 export和import的复合写法
11.8 模块的继承
11.9 跨模块常量
11.10 import()
11.10.1 简介
11.10.2 import() 使用场合
(1)按需加载
(2)条件加载
11.10.3 注意点
12 Module的加载实现
12.1 浏览器加载
12.1.1 传统方法
12.1.2 加载规则
补充资料
网友评论