1.ES5和ES6声明变量的方式对比
ES5中声明变量的方式:
//1.通过var声明
var num;
//2.函数方式声明
function fn(num){return num}
fn(10);
ES6中声明变量的方式:
//1.使用let声明
let a = 10;
//2.使用const声明
const name = "小明";
2.var ,let,const的区别:
1.不存在变量提升
var 命令会发生变量提升现象,及变量可以在声明之前使用,值为undefined。
let 和 const 则没有变量声明提升的功能,必须要先声明才能使用。
2.不允许重复声明
var命令能重复声明,后者覆盖前者。
let 和 const不允许在相同作用域内,重复声明同一个变量。
3.作用域
var 的作用域是以函数为界限
let 和 const 的作用域是块作用域,块级作用域指 { } 内的范围
var 可以定义全局变量和局部变量,let 和 const 只能定义局部变量
const 的声明的常量不能被修改,但对于引用类型来说,堆内存中的值是可以被改变的。
4.变量作为全局属性
定义的变量会作为window对象的属性,let不会
3.ES6中的箭头函数
ES6 中函数式声明方式被箭头函数 => 取代
箭头函数:使用 => 定义函数
1.当函数没有参数时,()不能省略
2.当函数只有一个参数,且函数体是一句代码,且是返回语句
3.参数的()可省略、函数体 {} 可省略、return 可省略、
4.中间使用 => 连接
5.若函数体只有一句,且不是return 语句, 不能省略 {}
6.若函数体有多条语句,不能省略 {}
7.若函数有多个参数,不能省略()
8.若函数的返回值为对象,此时不能省略return
4.箭头函数的this指向问题
1.箭头函数没有this,this是父级的
2.定义时候绑定,就是this是继承自父执行上下文!!中的this
3.ES5中,this指调用者,ES6中,this指定义时候绑定
5.ES6新增的字符串方法
//字符串新增方法:
方法 返回值 作用
includes('str') boolean 判断字符串中包含子串
endWith('str') boolean 判断字符串以"str"结尾
startWith('str') boolean 判断字符串以"str"开头
repeat(n) 重复拼接自身 重复n次输出字符串 repeat + repeat
//不全方法: 补全字符串长度
padStart(length, s); 字符串开头补全
endStart(length, s); 字符串末尾补全
网友评论