let和const初探

块级作用构造let和const

  1. let 和 const的区别就是,let声明为变量
    const声明为常量,就是在后面不可以去更改其值,否则会报错。
const B = 1;
B = 2; // Uncaught TypeError: Assignment to constant variable.
  1. let和var的区别: let存在块级作用域,而var只有全局作用域,和在函数内形成局部的作用域,不存在块级作用域。(关于作用域课一详细的看看《Javascript高级程设计)。
    原理:在js代码执行之前至少要经过一个步骤,js代码解析,在解析的时候,js引擎就拿着个小本本记下来声明了哪些变量,你可以认为使用let声明的,就不让它在声明前使用(《ES6标准入门》一书中let变量声明之前的区域叫做暂时性死区,也就是你不能在这个区域使用这个变量)。使用var声明的,可以让你在申明前使用。
    console.log(name);// Uncaught ReferenceError: Cannot access 'B' before initialization
    let name = "Bob";
  1. 常见块级作用
    可以笼统的认为块级作用域有以下形式
  • 函数内部
  • 块中字符串 () {}
(let i = 1)
{
  
}

for(let i = 0; i < nums.length;++i) {} 

function() {
  let name = ""
}
  1. 使用let和const申明的好处注意点
  • 同一个作用域下可以防止重复声明
  • const声明必须同时初始化,否则报错 (Uncaught SyntaxError: Missing initializer in const declaration)

总结

let和const作为ES5中退出解决var所带来的的问题,在编程中全部使用let和const来编程,可以减少很多不必要的错误。

参考

- 《ES标准入门》
- 《Vue.js从入门到实战》
慢慢来,比较快!基础要牢,根基要稳!向大佬致敬!
原文地址:https://www.cnblogs.com/rookie123/p/14672796.html