一,块作用域
在ES6中,有块作用域的说法,比如说这种
{
...代码...
}
在’{}‘中书写代码后,代码的生命周期将在’{}'范围内有效,针对由let和const关键字定义的变量来说具有块作用域的功能。一旦超出这个范围,就会找不到由let或const定义的变量。因为var是函数作用域变量,所以var不受块作用域的限制。
报错情况:
代码>
var a=1;
{
let b=2;
console.log(a);//第一次打印a
console.log(b);//第一次打印b
}
console.log(a);//第二次打印a
console.log(b);//第二次打印b
运行结果>
可以看见b的作用范围是{}括号内,第一次打印在{}中没有报错,输出结果和赋初始值一样,第二次打印时结果报错。
但是两次打印中,用var定义的变量没有报错,都正常输出其初始值1。
这就是块作用域,由let与const定义的变量的作用域范围只能在{}中进行,受到块的限制。
二,let与const
1,let
let和var很像,他们的共同作用就是定义变量,比如:
var a=1;
let a=1;
一样是给变量a赋值为1
使用let关键字注意一下两点:
1,不能变量声明提升(一旦定义了变量,必须在使用前定义,在使用后定义变量会报错,但是var关键字能做到)
2,不能重复声明变量
2,const
const是定义常量用的
定义后的常量不可改变,比如:
const a=1;
a=2;
运行结果如下:
定义a后就是固定值,常量。若要改变,就会报错。
使用const关键字注意一下两点
1,定义的时候有初始化值
2,初始化值不能改变(绑定不能改变)
三,模板字符串
模板字符串的使用
``符号内可以随意换行不报错
如:
let kokk='';
kokk=`
<li>${2333}
</li>
`
结果如下:
上面代码中的 等同于+,{}里面表示要写的内容。
四,箭头函数
箭头函数用 ()=>{}做成,就是箭头指向的函数,极大地简化了function(){}这种形式的写法(少些了几个字母,偷懒可以)
const aa=()=>{
console.log(233);
}
aa();
运行结果如图:
打印结果为233,与函数内的代码一直。
使用箭头函数需注意:
1, this指向的问题(没有this,借助父级this)
2,不能使用arguments
3,不能当做构造函数
加油!