JavaScript中的变量与常量及其作用域

let定义的变量

ES6中的let使得变量一定程度上具有块级作用域特性。但并非完全支持块级作用域

当一个函数的变量传入函数内部时,内部的回调函数还不能直接访问到该变量,需要在内部在建立一个临时变量进行传递。


updateLocalCart(cartId, amount) {
  let id = cartId
  let num = amount
  this.carts.forEach((cart) => {
    if (cart.id == id) {
      cart.amount = num
    }
  })
  this.updateCartNum()
}

const定义的变量

ES6中const用来定义常量,定以后不能修改。

var定义的变量

// a 只在hello()函数内部可见

function hello() {
  var a = 0;
}

var为老版本js变量定义方法。 ES6中依旧兼容var。它的作用域是函数级别。

未加修饰符的变量

// name 在全局可见
name = "lily";

function abc() {
  console.log(name)
}
console.log(name)

这种的全局变量,在任何时候都不建议使用。