美文网首页
ES6 let var const解析

ES6 let var const解析

作者: 楼上那只猫 | 来源:发表于2020-06-17 22:37 被阅读0次

let 和 var,const

  1. let声明的变量只在let所在的代码块有效
{
       let a = 2;
       var b = 3;
}
console.log(a);  //Uncaught ReferenceError: a is not defined
  1. for循环中,var声明的是全局的,let只在for循环有效
for(var i = 0; i<5;i++) {
            setTimeout(() => {
                console.log(i);
            }, 0);
        }
var修饰,打印结果全是5.

for(let i = 0; i<5;i++) {
            setTimeout(() => {
                console.log(i);
            }, 0);
        }
打印结果是0,1,2,3,4
  1. var会发生变量提升,即变量可以在声明之前使用。值是undefined
    let不会,声明之前使用会报错
console.log(m);  //undefined
var m;
console.log(n); // Uncaught ReferenceError: Cannot access 'n' before initialization
let n = 3;
  1. 暂时性死区。
    ES6 明确规定,如果区块中存在let和const命令,这个区块对这些命令声明的变量,从一开始就形成了封闭作用域。凡是在声明之前就使用这些变量,就会报错
    总之,在代码块内,使用let命令声明变量之前,该变量都是不可用的
if(true) {
  tem = '2';
  console.log(tem); // Uncaught ReferenceError: Cannot access 'tem' before initialization
let tem;
}
  1. const声明的变量不得改变值,意味着一旦声明就必须初始化。
const a; // Uncaught SyntaxError: Missing initializer in const declaration

相关文章

  • ES6

    定义变量 let const 和 var 的区别 var 会进行预解析let / const 不会进行预解析预解析...

  • ES6 学习笔记

    ES6 var let const 的使用 var let const 声明变量 全局作用域 和 块级作用域的区...

  • 总结一下前端常见javascript基础面试题:

    1.var ,let 和const的区别: let和const是es6新增的语法, let和var都可以定义变量,...

  • javascript碎片知识000

    const let var 3者的区别。 const 和 let 为es6新增的定义变量的关键字。 var存在...

  • (JS)

    ES6 let、const和var的区别 let和const声明变量不存在变量提升 let和const不能重复声明...

  • react 入门基础(一)之ES6

    ####ES6 let const var 三者的区别 ### 1. let const 不能重复声明变...

  • es6,es7,es8语法总结

    ES6 1. var let const let,const具有块级作用域,不具有变量提升 const 用...

  • ES 6 7 8 随笔 QAQ

    ES6 1. var let const let,const具有块级作用域,不具有变量提升 const 用...

  • js常见知识点--第二篇

    一、var 、let 、const的区别 var是ES5提出的,let和const是ES6提出的。var不存在块级...

  • ES6基础知识

    let const es6 提供了新的声明方式代替以前的 var let construction var不支...

网友评论

      本文标题:ES6 let var const解析

      本文链接:https://www.haomeiwen.com/subject/zilsxktx.html