var和let区别简述

摘要:
因为我们习惯于使用var来声明变量,所以ES6发布了let来替换var,并且所有变量声明将被提升到函数的顶部(变量声明指vara;初始化指vara=1;声明变量时必须添加var,否则变量a将自动提升为全局变量。函数执行后,vara=1,控制台将不会打印1和undefined,因为let声明的变量不会<(函数(){console.log(a);

   因为习惯用var声明变量,以至于ES6出了let来替代var,我依然继续用var,直到后来慢慢了解let之后,开始尝试使用

    不同点:

      ①:var属于ES5规范,let属于ES6规范

     ②:var有预处理机制,let没有。预处理机制也就是常说的声明提前

      声明提前:不管变量被声明在函数什么位置,所有变量声明都会被提升至函数顶部(变量声明指 var a; 即声明还未赋值)

           比如声明变量a并赋值为1,即 var a = 1;  则 var a;会被提升至函数顶部 (只是a被提前,a的值1不会被提前)

      注:1. 在声明变量时一定要初始化 ,初始化指 var a = 1; (声明并赋值 

        2. 即使在函数内部,声明变量时一定要加上var,不要只写 a = 1; 否则变量a会自动升为全局变量

    

  下面立即函数执行后,控制台不会打印出1,而是undefined,因为只有声明被提前,值没有

  <script>
        (function() {
            console.log(a);
            var a = 1;
        })()
    </script>

   下面立即执行函数执行后,控制台不会打印出1undefined,而是报错,因为let声明的变量不会被提前

  <script>
        (function() {
            console.log(a);
            let a = 1;
        })()
    </script>

  

var和let区别简述第1张

    ③:作用域的不同,var是全局作用域,let是块级作用域

    下面代码控制台会打印出1 

  <script>    
        if(true) {
            var a = 1;
        }
        console.log(a);
    </script>

    下面代码控制台不会打印出1,会报错,提示a没有定义(let定义的变量只在{}里才能访问到)

  <script>
        if(true) {
            var let = 1;
        }
        console.log(a);
    </script>

      

免责声明:文章转载自《var和let区别简述》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇IOS开发之UIColectionView【译】C++日志(Logging in C++)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

常用数据清洗方法大盘点

本文来自网易云社区 数据清洗是将重复、多余的数据筛选清除,将缺失的数据补充完整,将错误的数据纠正或者删除,最后整理成为我们可以进一步加工、使用的数据。 所谓的数据清洗,也就是ETL处理,包含抽取Extract、转换Transform、加载load这三大法宝。在大数据挖掘过程中,面对的至少是G级别的数据量,包括用户基本数据、行为数据、交易数据、资金流数据以...

单片机的堆和栈(Heap &amp;amp; Stack)详解

原文链接:https://blog.csdn.net/emoeror_zhang/article/details/94737249 单片机的堆和栈(Heap & Stack)详解 烛火飞蛾 2019-07-05 18:41:21  5844  收藏 40 分类专栏: 嵌入式C语言基础 文章标签: STM32 heap stack 堆...

c++ 中常量与变量 基本数据类型

c++中常量如何分类? 1、整数常量,所有的整数。 整数又分为 int (integer) 占用4个字节 一个字节占几个二进制位?8个二进制位,一个整型变量占32位二进制位 (内存中开辟出来的存储空间) 2、小数常量,所有的小数。 3、布尔型常量,只有两个值,true, false。 4、字符常量,一个字母或数字,用 '' 进行标识 5、字符串常量,一个或...

windows环境中Tomcat实现开机自启动

一:安装jdk和tomcat (以64位为示例) 1.jdk安装: 下载:https://www.oracle.com/technetwork/cn/java/javase/downloads/jdk8-downloads-2133151-zhs.html 选择对应版本进行下载,然后进行安装。 2.tomcat安装: 下载:http://tomcat.ap...

【js重学系列】作用域

作用域 在 JavaScript 中, 作用域为可访问变量,对象,函数的集合。 在 Javascript 中,作用域分为 全局作用域 和 函数作用域 什么是作用域呢,简单的说,作用域就是变量与函数的可访问范围,即作用域控制着变量与函数的可见性和生命周期。 全局变量 变量在函数外定义,即为全局变量。 全局变量有 全局作用域: 网页中所有脚本和函数均可使...

WPS使用书签跳转到指定的文档位置

1、选择跳转到的位置的文本,菜单栏插入中点击书签,弹出框中输入书签名,点击确定;2、选择超链接的文本,右键点击超链接,弹出框中点击本文档中的位置,选择刚输入的书签,点击确定即可。 关于跳转:按住Ctrl点击超连接文本即可跳转到书签位置。关于书签显示:工具(Alt+T)中点击选项,显示中勾选书签即可。————————————————版权声明:本文为CSDN博...