首页 > 其他分享 >var、let、const三者的区别。

var、let、const三者的区别。

时间:2022-09-26 12:55:50浏览次数:49  
标签:const 变量 作用域 let var 声明

ES5 中作用域有:全局作用域、函数作用域。没有块作用域的概念。

ES6 中新增了块级作用域。块作用域由 { } 包括,if语句和 for语句里面的{ }也属于块作用域。

注意:const常用于声明常量,let常用于声明变量。

var

var定义的变量在之后可以修改,如果不初始化会输出undefined,不会报错。

如果使用关键字 var 声明一个变量,那么这个变量就属于当前的函数作用域,如果声明是发生在任何函数外的顶层声明,那么这个变量就属于全局作用域。

let

let 关键字用来声明变量,使用 let 声明的变量有几个特点:

1、不允许重复声明

2、块级作用域

3、不存在变量提升

4、不影响作用域链

const

const 关键字用来声明常量,const 声明有以下特点

1、声明必须赋初始值

2、标识符一般为大写

3、不允许重复声明

4、值不允许修改

5、块级作用域

const定义的变量不可以修改,而且必须初始化。

总结

var 声明的变量属于函数作用域,let 和 const 声明的变量属于块级作用域;
var 存在变量提升现象,而 let 和 const 没有此类现象;
var 变量可以重复声明,而在同一个块级作用域,let 变量不能重新声明,const 变量不能修改。

标签:const,变量,作用域,let,var,声明
From: https://www.cnblogs.com/xl15/p/16730496.html

相关文章

  • python的内置函数vars,locals
    vars包含参数时,用于返回实例化对象的内部属性值,(因此,其最常用于读取parse的参数数值,以便于写入文件中记录)用于非实例化对象时,可用于查看对象的方法名等作用。在没有参数......
  • 反射_Class对象功能_获取Field和反射_Class对象功能_获取Constructor
    反射_Class对象功能_获取Field反射_Class对象功能_获取ConstructorStudent类   pro.properties配置文件   ReflectTest类测试  想运行其他类中的方......
  • 关于var声明
    函数内部在函数内部,有var和没var声明的变量是不一样的。有var声明的是局部变量,没var的,声明的变量为全局变量全局在全局作用域内声明变量时,使用var声明的变量,就是window......
  • ES 中let、const、var的区别
    (1)块级作用域:块作用域由 {} 包括,let和const具有块级作用域,var不存在块级作用域。块级作用域解决了ES5中的两个问题:1.内层变量可能覆盖外层变量2.用来计数的循环变量......
  • C++ 自学笔记 new和delete(动态内存分配)
    动态内存分配DynamicmemoeyallocationC++使用new和delete来申请和释放内存new:先申请一个空间int\Stash:默认构造函数初始化对象~:析构函数析构delete:再释放空间......
  • static constexpr遇到的undefined 问题
    classSolution{staticconstexprintcheck[10]={0,0,1,-1,-1,1,1,-1,0,1};public:introtatedDigits(intn){intans=0;f......
  • Const修饰类成员函数
    主要说明const类成员函数调用方式以及this指针对应变化SimpleConst.h#pragmaonceclassA{public: inta; intb; constintc; A(inti,intj,intt); ......
  • Servlet和Maven项目
    Servlet执行流程通过默认端口号访问到Tomcat服务器通过类名访问到对应的项目通过自定义的相应路径,访问到注释中的同名路径即为执行流程相应的Servlet对象由Tomcat服务......
  • Javaweb学习笔记第十一弹(内含Servlet相关知识呦!)
    Web核心静态资源:HTML,CSS,JavaScript,图片等,负责页面展现动态资源:Servlet,JSP等,负责逻辑处理数据库:负责存储数据HTTP协议:定义通信规则Web服务器:负责解析HTTP协议,解析请求......
  • 使用coverlet统计单元测试的代码覆盖率
    单元测试是个好东西,可以在一定程度上兜底虽然写单元测试这件事情非常麻烦但是好的单元测试可以显著提高代码质量,减少bug,避免无意中的修改导致其他模块出错写测试......