我读ES6--变量声明

2018-10-09  本文已影响5人  叫我徐小星
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的用法

上一篇 下一篇

猜你喜欢

热点阅读