为什么学习Es6
- Es6的版本变动内容是最多的,具有里程碑意义。
- Es6加入许多新的语法特性,编程更简单,高级。
- Es6是前端发展趋势,就业必备技能。
一,let特点
1. let 声明的变量只在 let 命令所在的代码块内有效。
2. let 只能声明一次 var 可以声明多次:
3. 不存在变量提升
4. 不影响作用域
注:通常与循环一起使用
二,const特点
1. const 声明一个只读的常量,一旦声明,常量的值就不能改变。
2. 声明必须赋初始值
3. 只能声明一次
4. 块级作用域
5. 不存在变量提升
注:对象和数组修改不会触发const错误
三,Es6结构赋值
1. 结构赋值:他是一种针对数组或者对象进行模式匹配,然后对其中的变量进行赋值。
<script type="text/javascript">
let [a, b, c] = [1, 2, 3];
let [a, b, c] = [1, 2];
let [a, b] = [1, 2,3];
let [a,, b] = [1, 2,3];
let [a, [[b], c]] = [1, [[2], 3]];
</script>
2. ...
剩余运算符|扩展运算符
注:通常写在最后
<script type="text/javascript">
let [a, ...b] = [1, 2, 3,4,5];
</script>
四,Es6字符串
ES6 之前判断字符串是否包含子串,用 indexOf 方法,ES6 新增了子串的识别方法。
1. includes():返回布尔值,判断是否找到参数字符串。
2. startsWith():返回布尔值,判断参数字符串是否在原字符串的头部。
3. endsWith():返回布尔值,判断参数字符串是否在原字符串的尾部。
4. startsWith与endsWith方法都可以接受两个参数,需要搜索的字符串,和可选的搜索起始位置索引(下标0)。
注:查找到返回true,否则返回false
注:不能写正则验证
5. repeat(number):返回新的字符串,表示将字符串重复指定次数返回。
1.如果参数是小数,向下取整
2.如果参数是 0 至 -1 之间的小数,会进行取整运算, 0 至 -1 之间的小数取整得到 -0 ,等同于 repeat 零次
3.如果参数是 NaN,等同于 repeat 零次
4.如果参数是负数或者 Infinity ,会报错:
5.如果传入的参数是字符串,零次
6. padStart(总长度,“字符串”):返回新的字符串,表示用参数字符串从头部(左侧)补全原字符串。
padEnd():返回新的字符串,表示用参数字符串从尾部(右侧)补全原字符串。
以上两个方法接受两个参数,第一个参数是指定生成的字符串的最小长度, 第二个参数是用来补全的字符串。如果没有指定第二个参数,默认用空格填充。
7. 模板字符串`` 添加${a}
// let a = 9999;
// let str1 = "hjdsfhfdshjgdf"+a+
// "hgfsdgfhsdghfg";
// console.log(str1);
// let str2 = `sdhhakjshdjkasdhjs${a}
// akhdjka
// shdjjkda
// ssjkdahjad`
// console.log(str2);
8. 标签模板
// alert`Hello world!`;
// 等价于
// alert('Hello world!');
五,数值
1. a.toString(转进制)
二进制表示法新写法: 前缀 0b 或 0B 。
console.log(0b11 === 3);
2. 八进制表示法新写法: 前缀 0o 或 0O 。
十六进制a-f|A-F
var a = 15;
console.log(a.toString(16));
var a = 0b101011101;
console.log(a.toString(10));
console.log(0.1 + 0.2 == 0.3);
console.log(1 + 1 === 2);
console.log(0.1 + 0.2 === 0.3);
console.log( Number.EPSILON);
Number.MAX_SAFE_INTEGER最大安全整数
Number.MIN_SAFE_INTEGER最小安全整数
3. Number.isFinite()检查一个数值是否有限,返回ture,否则返回false
没有隐式的 Number() 类型转换,所有非数值都返回 false
用于判断给定的参数是否为整数。返回true,否则返回false