码迷,mamicode.com
首页 > 其他好文 > 详细

let、const、var区别?

时间:2021-03-03 12:37:33      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:cti   asc   const   全局   复杂   声明   console   地址   内存   

letconstvar区别?

  • let和const不存在变量提升(没有预解析,var有预解析)。
  • let和const在同一作用域范围内不能重复定义变量。(var可以)。
  • let和const有严格的作用域(块级作用域:变量在代码块中被执行结束后会被释放掉)。(var存在于全局作用域)。
  • const声明一个只读常量(或者复杂类型的变量)即变量指向的那个内存地址不能改动。const必须初始化,不能只定义不赋值,保护全局变量不受污染。let定义变量。

常见题目:

 for(var k=0;k<10;k++){
            setTimeout(function() {
            console.log(k);    // 执行此代码时,同步代码for循环已经执行完成
        }, 10);
        }
// 输出结果:10(10次)

把var改为let:

k虽然在全局作用域声明,但是在for循环体局部作用域中使用的时候,变量会被固定,不受外界干扰。

 for(let k=0;k<10;k++){
            setTimeout(function() {
            console.log(k);    // k 是循环体内局部作用域,不受外界影响。
        }, 10);
        }
// 输出结果:0  1  2  3  4  5  6  7  8 9

  

 

let、const、var区别?

标签:cti   asc   const   全局   复杂   声明   console   地址   内存   

原文地址:https://www.cnblogs.com/renyuqianxing/p/14473436.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!