一、 什么是ES6
ES6就是ECMAScript第6个版本。
由于ES6是2015年发布的,因此也叫ES2015(ECMAScript2015)
二、普通模式与严格模式
普通模式:就是正常写的js
严格模式:需要在脚本或者函数的最上边添加use strict。严格模式下需要严格按照ECMA的标准进行编写代码
三、ES6新增的内容
1、新增的变量的方法
- let:用于定义变量
- const:用于定义常量,在定义的时候就要赋值并且后面是不可以修改的
let、const与var的区别
- let和const不允许重复声明变量
- let和const声明的变量不会预解析
- let和const声明的变量会被所在的代码块限制
2、箭头函数
(参数)=>{ 函数体 }
如果只要一个参数和代码只有一句话可以简写为:参数=>代码
箭头函数中没有this,如果非要用其指向与上下文一样
箭头函数中没有arguments
3、默认值
如果函数的形参等于一个值,那么就是给这个形参设置了默认值
4、解构赋值
定义的变量名和对象里面的变量名一样
let obj={
nema:"小明",
age:18
}
let { name, age, aaa } = obj;
let arr = [18, 'zhangsan'];
let [a, username, aaa] = arr;
如果赋值的变量在复杂数据类型中没有,则会返回undefined(aaa就是undefined)
解构方式是根据顺序一个一个解构的
5、对象扩展
在创建对象的时候,如果对象的属性名与需要赋值给这个属性的变量的名字是一样的,那么就可以只写这个属性名。这个变量的值回自动赋值给这个属性
let name=“xiaoming”
let obj={
name,
name:name,
//以上这两种的结果是一样的
}
新增的静态方法: Object.assign,合并对象。
6、模板字符串
``:模板字符串就是反引号,可以创建字符串,是支持空格和换行的
7、展开运算符和获取剩余参数
…:展开运算符,可以将对象或者数组展开
rest:获取剩余参数,就是展开运算符的逆用
let obj={
name:"xiaoming",
age:18
}
7、模块化开发
模块化开发就是一个js文件就会一个模块,在这个模块中定义了很多的函数,再把这些函数引入到另一个js文件中。
核心:
export
:导出
import
:导入
在script标签 加 type="module"就代表开启模块化
8、新增的数据类型
Symbol:独一无二的值,通过这个函数创造的值是与如何值都不相等的。创建方式var s = Symbol ( " s " )
set:类似数组-- 不能存重复元素 --没有下标-(可以用作数组的去重)
- size:大小,几个元素
- has:判断是否存在
- delete:删除元素
- clear:清空元素
- Array.from():将set转成数组
map 类似对象-- 键值对-- 键 可以是任意类型
9、json数据
json数据也叫json字符串,它是一个特殊的字符串格式。 属性名必须加双引号 ,如果不加双引号,解析的时候会报错 -JSON at position。属性值如果是字符串 必须要双引号。
- JSON.parse: 解析json字符串为 js对象
- JSON.stringify:把js对象转为 json字符串
四、正则表达式
正则就是描述字符串规则的对象。
作用:检查用户输入的内容是否满足一些条件。
1、创建方式
构造函数创建:new RegExp();
字面量创建:var reg = /hello/i;
2、api
- lastIndex:开始检测位置
- test() :测试字符串 是否满足正则的规则,是否匹配正则
- .exec():提取
- search():查找
3、字符
标识符
- i:忽略大小写
- g:全局
边界符
- /^a/:必须要以a开头
- /a$/:必须要以a结尾
限定符
- *:匹配前面的子表达式零次或多次
- +:匹配前面的子表达式一次或多次。
- ?:匹配前面的子表达式零次或一次。
- {n}:匹配确定n次。
- {n,}:至少匹配n次。
- {n, m}:最少匹配n次且,最多匹配m次。
特殊符号
- []:字符集合。匹配所包含的任意一个字符。
- [^]: 非,不能包含[]里面的字符
[a-z]:字符范围。匹配a到z之间任意的元素
[xyz]:匹配x、y、z任意一个元素即可
[^a-z]:表示不包含小写字母。
[^xyz]: 表示除了x、y、z之外都可以匹配。
基本字符
- \d :匹配0-9之间的任一数字,相当于[0-9]。
- \D: 匹配所有0-9以外的字符,相当于[^0-9]
- \w: 匹配任意的字母、数字和下划线,相当于[A-Za-z0-9_]。
- \W :除所有字母、数字和下划线以外的字符,相当于[^A-Za-z0-9_]
- \s: 匹配空格(包括换行符、制表符、空格符等)
- \S: 匹配非空格的字符。
- .:匹配除”\n”之外的任何单个字符
- \:转义–去掉 一些元字符的特殊函数