一、javaScript的组成:
1、ECMAScript:javascript的基本语法
2、BOM:浏览器对象模型(操作浏览器)----核心对象 window
3、DOM:文档对象模型(操作html文档)---- 核心对象 document
二、ECMAScript(ES6)
1、ECMAScript5:脚本语言。不需要独立的编译器,通过浏览器加载运行。实现用户和页面的交互
2、ECMAScript6:是javascript的下一代语法标准,于2015年6月发布。使javascript正式成为企业级的开发语言。
3、ECMAScript和JavaScript的关系:ECMAScript是JavaScript的语法规范,JavaScript是ECMAScript的一种实现。
三、es6的基本语法
1、let 和 const
(1)let:用来声明块级变量,不能重复声明变量(防止变量被污染)。var声明的变量会出现作用域的提升(会出现变量的污染)。
(2)const:声明的常量必须要初始化,初始化值在后面不可以在改变,一般常量使用大写,也是块级作用域。
a、const声明了一个对象,对象的属性值可以修改,但是不可以修改对象本身。
b、冻结对象,不能修改对象属性值 Object.freeze(对象名)
使用函数递归调用可以冻结嵌套的对象
(3)块级作用域:全局、函数、eval。
变量只在代码块“{}”内有效
(4)
四、es6新特性
1、临时死区:用let和const声明的变量,放在‘临时死区’,
let,const写在console.log前面会报错,但是var不会报错(实现变量提升)。使用let声明的变量,const声明的常量的作用域不会被提升
{
} 前面没有变量时,{}表示作用域
2、在循环中使用var的情况:
3、解构赋值: Rest运算符:"..."
(1)当迭代器使用:会按顺序遍历容器中的元素
(2)替代函数的内置属性arguments
(3)简化变量的赋值操作
a、数组
b、对象
(4)将特定的元素放在变量里
(5)交换变量值
4、对象的解构
(1)将对象的属性解构出来赋给变量
(2)对多层对象进行解构
(3)解构时可以给变量重命名
5、模板字符串 :
(1)使用 `${变量名}`将字符串常量和变量可以连接在一起写,就不需要使用+号进行字符串拼接。
(2)可以在一行代码不能换行时进行换行并且不报错。
6、简化对象
7、symbol类型
(1)ES5的数据类型:number、string、boolean、bigint、null、undefined、object
(2)ES6新增的Symbol:表示一个唯一的值
a、直接创建:let 变量名 = Symbol
b、间接创建:传一个字符串 let 变量名 = Symbol(字符串)
8、set集合 :
是一种数据结构,里面不能存放重复的值,可以用于数组去重、字符串去重。
(1)创建方式
a、使用new运算符: let 变量名 = new Set()
b、通过数组创建:取出重复的元素
问题1:创建set集合时为什么使用new运算符?
(1)set是一个构造函数,凡是用构造函数创建对象时都要用new。
问题2:set构造函数的参数为什么是数组或null?
(2)常用函数
a、add(val):向集合中添加元素
b、delete(val):删除集合中的元素,删除成功返回true,删除失败返回false。
c、has(val):判断value在集合中是否存在,若存在返回true,不存在返回false。
d、clear():清除所有值,没有返回值
e、values():获取集合中所有的value
强调:Set集合也是key = value格式,与对象的不同之处在于,它的key和value是相同的。
f、keys():获取集合中所有的key,keys()与values()输出结果一样。
(3)属性:size 存放的是集合中元素的个数 。
(4)集合遍历方法:
a、for of
b、forEach(function(value,key){})
(5)集合的运算
a、并集:将两个集合去重拼接。
b、交集:返回两个集合中都有的元素
c、差集:setA中有,setB中没有的元素
9、WeakSet:只是一个对象集合,只能存放对象
支持add、has、delete