在js中,用var声明的话,在同一个作用域的范围内会存在声明提前的情况,举个例子:

      

    按常理来说,我们此时需要的b应该输出的是 not defined 才对,但是实际上并没有,因为var b在判断之前已经声明了,在判断之后只是进行了赋值的操作而已。

    用var声明在同一个作用域内是可以进行重复声明,浏览器并不会报错;

    但是用let和const声明变量的话,在同一个作用域内是不允许重复声明,重复声明会告诉你该变量已经存在了,

    必须是先定义再使用,不存在声明t提前这回事;

           

    有着严格的作用域,声明的变量只能在当前的作用域内使用,而且存在了块级作用域(带有{}的代码块)。通常在for,if 这些里面用var 声明变量,该变量的作用域不止只属于当前的

    的块级作用域,当然在js中是不存在块级作用域的,但是用let和cont,会把代码块当做一个块级作用域,对于变量的管理起到了很好的作用;

    const

    其中const 声明的是一个只读的常量,而且一旦声明,常量的值就不能改变,使用const的声明的同时必须赋值,不然会报错

    

    推荐es6的入门书 阮一峰的《ES6标准入门》

转载于:https://www.cnblogs.com/huangmei/p/7285856.html

关于变量声明的var,let,const相关推荐

  1. 关于ECMAScript6 的学习01-ES6 的六种变量声明方式===关于常量const

    const 变量声明常量   在声明const 时,必须初始化   否则会出错 const 变量与let 变量类似 作用域同样在{} 的范围内. 也不可以在同一作用域内声明两个同名 const 变量 ...

  2. php变量 声明提升,TypeScript:let和const变量声明

    在开始介绍let和const变量声明前,有必要先了解下JavaScript里的var变量声明. var变量声明 全局声明 var声明在函数体外,所声明的变量为全局变量.var name = " ...

  3. vue 访问 const 变量_var与let、const的区别

    最近在学习VUE时,视频的项目在创建一个变量时经常用Const来创建,再此之前我一直使用var来创建一个变量,通过查阅资料得到以下解释: 一,var声明变量存在变量提升,let和const不存在变量提 ...

  4. 必须声明标量变量 @sum_level。_ES6系列—新的变量声明方式

    在ES5中,变量声明只有var和function以及隐式声明三种,在ES6中则增加了let.const.import和class四种. 1. let 1.1 块级作用域 let声明的变量的作用域是块级 ...

  5. Go 基本语法之变量声明

    目录 一.Go 语言的变量声明方法 1. 省略类型信息的声明 2. 短变量声明 二.包级变量 && 局部变量的声明形式 1.包级变量的声明形式 2.局部变量的声明形式 学习静态语言有别 ...

  6. var let const声明变量的区别

    在js中定义变量的方式有三种,其中let和const关键字是来自ES6中的,下面将逐一介绍各个关键字声明变量的特点. var声明变量 var 是一个 JS关键字,用来声明变量( variable 变量 ...

  7. JavaScript:学习笔记(7)——VAR、LET、CONST三种变量声明的区别

    JavaScript:学习笔记(7)--VAR.LET.CONST三种变量声明的区别 ES2015(ES6)带来了许多闪亮的新功能,自2017年以来,许多JavaScript开发人员已经熟悉并开始使用 ...

  8. JavaScript 变量声明详解: var, let, const

    JavaScript 中,可以声明变量的关键字有 var.let和const. var 使用 var 定义变量,可以保存任何类型的值.若不初始化变量,变量会保存 undefined. 1. 函数级作用 ...

  9. python中声明变量 var_声明变量的方法 var、let、const

    简介 "变量提升"意味着变量和函数的声明会在物理层面移动到代码的最前面,但这么说并不准确. 实际上变量和函数声明在代码里的位置是不会动的,而是在编译阶段被放入内存中. 声明变量的方 ...

  10. TypeScript学习(2)-变量声明 var let const

    let.const是js中新的变量声明方式,es5,es6新版本的js语言规范出来的定义,弥补了var的缺陷.const是对let的一个增强,不允许对一个变量再次赋值,一般用于常量. 使用var声明的 ...

最新文章

  1. 性能优化之Java多线程批量拆分List导入数据库
  2. 2013年十大IT发展趋势预测
  3. Gnuplot使用x11终端自动注销问题
  4. 异步Socket通信总结[转]
  5. 高人对libsvm的经典总结(全面至极)
  6. 拿下编程界的奥林匹克世界冠军,22岁的她加入了华为
  7. 揭开SAP Fiori编程模型规范里注解的神秘面纱 - @ObjectModel
  8. 六级范文背诵50篇_清华附小校长:小学生日记写作训练,附经典范文50篇,家长收藏...
  9. 海南大学植物代谢组学技术开发与创新应用课题组博士后招聘
  10. 数据交互什么意思_学习编程怎么样才可以不枯燥?什么是前端语言?
  11. 惠达卫浴引入USB服务器远程管控网银U盾
  12. Springboot 之 使用POI读取解析Excel文件
  13. win8配置JDK1.8环境变量
  14. android 设置来电铃声
  15. 电源的环路补偿、功率级补偿、Vout的波形对应的响应速度-运放环路补偿
  16. 2000字精华总结,安利一个超好用的 Python 数据分析神器
  17. 英特尔酷睿处理器后面的数字和字母含义
  18. 最简单DIY基于ESP8266的智能彩灯②(在网页用按键和滑动条控制RGB灯)
  19. linux下常用拷贝命令
  20. 度量空间的完备化定理

热门文章

  1. DB2 导入CSV文件
  2. Python3_tuple
  3. 【Linux学习010】算数运算、文件测试、字符测试、位置变量和特殊变量
  4. 数据库--Oracle
  5. 清除zencart分类页多页后面的disp_order sort字符串的方法
  6. Diameter协议学习笔记一(协议介绍)
  7. 标号1-n的n个人首尾相接,1到3报数,报到3的退出,求最后一个人的标号
  8. Android lint工具 检查的常见问题
  9. oracle 模式_Oracle实验--insert /*+APPEND*/与insert不同模式下产生redo大小
  10. python怎么用input输入列表_Python - 根据列表内容验证用户输入的最佳方法是什么?...