var/let/const都用来声明变量,但各有区别。

使用var会弹出“3”,可见在块外,块中定义的变量i仍然是可以访问的。也就是说,使用var声明变量是不支持块级作用域,容易泄露成为全局变量。它只支持函数作用域,而且在一个函数中的任何位置定义的变量在该函数中的任何地方都是可见的。使用var可能会导致内层变量覆盖外层变量。而let只在代码块内有效。

用let将var替换后,会报错Uncaught ReferenceError: i is not defined。

使用var声明变量,在执行前会进行预解析。而let不会,它所声明的变量一定要在声明后使用,否则报错,并且let不允许在相同作用域内,重复声明同一个变量。

//------------------------------关于const------------------

const声明的变量不得改变值,这意味着,const一旦声明变量,就必须立即初始化,不能留到以后赋值,即声明不赋值,就会报错。与let一样在块级作用域内有效,不会预加载。

关于let和const更多的讲解可参见:http://es6.ruanyifeng.com/#docs/let

转载于:https://www.cnblogs.com/a-xiongzjh/p/7009946.html

关于var、let和const相关推荐

  1. ES6/06/ES6简介,ES6新增语法,let声明变量,const声明常量,var,let和const总结,数组解构,对象解构,箭头函数,剩余参数

    ES6简介 ES全称:ECMAScript ; 由ECMA国际化组织制定的标准脚本语言的标准化规范: 为什么使用ES6? 每一次标准的诞生都意味着语言的完善,功能的加强,JavaScript语言本身也 ...

  2. JS红书宝--var,let和const声明变量

    var,let和const声明变量 var 声明 var声明作用域 function test() { var message = "hi"; // 局部变量 } test(); ...

  3. js中定义变量之②var let const的区别

    var 上一篇文章有讲过,是js定义变量的关键词. 但是在es6中,新添加了两个关键词,用于变量声明的关键词:let 和const 接下来就说一下var let 和const的区别: 首先说var 用 ...

  4. javascript中var、let、const声明的区别

    我在上一篇文章javascript中词法环境.领域.执行上下文以及作业详解中的最后稍微提到了有关var.let.const声明的区别,在本篇中我会重点来分析它们之间到底有什么不同. 提到var.let ...

  5. uniapp 获取到js文件var一个变量怎么获取到这个变量值_浅析Js中const,let,var的区别及作用域...

    理解:let变量的作用域只能在当前函数中 js中const,let,var的区别及作用域_lianzhang861的博客-CSDN博客​blog.csdn.net 全局作用域中,用 const 和 l ...

  6. ES6——let、const和var的用法和区别

    ES6 新增了let命令,用来声明变量,新增了const命令,用来声明常量,它们的用法类似于var. let a = 1; var b = 2; const PI = 3.14; 主要区别 块级作用域 ...

  7. Var,Let和Const –有什么区别?

    A lot of shiny new features came out with ES2015 (ES6). And now, since it's 2020, it's assumed that ...

  8. var和let和const_用故事讲解JavaScript的var,let和const变量

    var和let和const by Prarthana S. Sannamani 通过Prarthana S.Sannamani 用故事讲解JavaScript的var,let和const变量 (Jav ...

  9. 犀牛书第七版学习笔记:let、const和 var 声明与赋值

    目录 0.基本常识 0.1变量与常量 0.2 作用域scope 0.3 重复声明 1.var 1.1 var声明作用域 var Declaration Scope 函数作用域 全局var声明 1.2 ...

  10. 复习es6-let和const

    1.声明变量的方法 es5 : var   function es6 : var   function   let    const   class 2.let(const)与var 不同 let不能 ...

最新文章

  1. 使用Sentinel配置Redis 3.x主从高可用服务
  2. alluxio源码解析-层次化存储(4)
  3. Python基础教程:正则表达式-匹配多个字符
  4. 【机器视觉】 dev_set_line_width算子
  5. 英语口语-文章朗读Week9Thursday
  6. jsp中如何将Java对象转成js对象?
  7. crt安装mysql安装包_Linux安装MySQL步骤
  8. 《Algorithms》—— 链表实现栈,队列,背包
  9. API函数之GetUserName
  10. Jasper报表导出pdf中文不显示——Font simsun is not available to the JVM. See the Javadoc for more det,已解决
  11. 计算机wmi配置错误,系统没有WMI服务怎么办、WMI错误修复方法
  12. 参加2009 ESRI年会的一点记录和感想
  13. linux显卡驱动与opengl,NVIDIA率先发布OpenGL 3.0 Linux驱动
  14. PS去水印的四种方式
  15. 申请企业邮箱有哪些好处?企业邮箱优势盘点
  16. 抖音APP终极瘦身方案
  17. VB.net参数化界面调用ANSYS求解的详细步骤及错误提示的解决办法
  18. 计算机毕业设计ssm网上私厨到家服务平台dp28s系统+程序+源码+lw+远程部署
  19. matlab参数化翼型,机翼翼型Matlab编程.doc
  20. 解读BLM业务设计中的战略控制点

热门文章

  1. VLAN的分类与实验
  2. HW Eth-Trunk链路聚合
  3. linux安装neo4j
  4. Linux基本命令二(帮助命令)
  5. ACL在QinQ port 中的应用
  6. 实现链表的增删改查java代码_用Java语言实现链表的增删改查
  7. java里pom.xml是啥意思_maven中pom.xml详细介绍
  8. Nginx源码分析 - 基础数据结构篇 - 字符串结构 ngx_string.c(08)
  9. java-----抽象类与接口
  10. MAC VSCODE配置C语言开发环境