1.关于var和let、const
let、const与var一样,都是用来声明变量,但都有其特殊的用途。
let 、const作用域在{}之间,重复使用let、const会报错、定义之前不能使用
const只能赋值一次 且只能声明的时候赋值,如const a=1;
以下一段用var声明:
var x = 'outer';
function test(inner) {
if (inner) {
var x = 'inner';
return x;
}
return x;
}
test(false); //undefined
test(true); //"inner"
我们知道,函数中由于变量提升,所以test(false)的值是undefined;
以下一段用let声明:
let x = 'outer';
function test(inner) {
if (inner) {
let x = 'inner';
return x;
}
return x;
}
test(false);//"outer"
test(true);//"inner"
现在if前面也定义一个x变量,如下:
let x = 'outer';
function test(inner) {
let x='mid';
if (inner) {
let x = 'inner';
return x;
}
return x;
}
test(false);//"mid"
test(true);//"inner"
由上可知:let为块作用域,不会像var一样变量提升。
const:对于不希望被改变的常量,则可用const声明,如:
const x = 'a';
后面再给x赋值将会报错。
2.关于箭头函数
箭头函数的产生:弱化this的用法
网友评论