博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
let、const、var
阅读量:6832 次
发布时间:2019-06-26

本文共 962 字,大约阅读时间需要 3 分钟。

  在JavaScript中,常见的声明变量的方式有var、let、const;其中,let和const是ES6中出现的新的声明变量的方式。

1、let

  let用来声明变量,用法类似于 var,只不过使用let声明的变量,只在其所在的块级作用域中有效,在该作用域之外无效;

  let声明的变量在一个作用域中只能声明一次,如果重复声明多次,会报错如下:Uncaught SyntaxError: Identifier 'a' has already been declared

  let不能在函数中重新声明参数

2、const

  const声明的是一个只读的常量,一旦声明,值将无法改变;

  对于const来说,只声明不赋值就会报错;const声明变量之后必须立即初始化;如果不初始化,即会出现如下错误:Uncaught SyntaxError: Missing initializer in const declaration

  const保证的并不是变量的值不得改动,而是变量指向的那个内存地址所保存的数据不得改动;

  对于复合型数据来说,const只能保证这个指针式固定的,但是没有办法保证他指向的数据结构是不是可变的

3、暂时性死区

  暂时性死区的本质就是:只要已进入当前作用域,所要使用的变量就已经存在了,但是不可获取,只有等到声明变量的那一行代码执行的时候,才可以获取和使用该变量。

  【注意】ES6中规定:暂时性死区、let和const语句不出现变量提升,主要是为了减少运行时错误,防止在变量声明前就使用这个变量。

4、let、const和var的区别

这三个关键字声明变量的时候,都会存在变量提升,主要区别如下:

  - var在声明变量的时候,如果没有赋值,会默认被初始化为undefined;

  - let/const在声明变量的时候,会先创建变量,但是不会初始化变量,只有在声明语句执行的时候变量才会被赋值;

  - let在声明语句执行的时候,如果没有被赋值,会默认赋值为undefined;const声明的是一个常量,在执行的时候必须被初始化;如果没有被赋值,则会报错。

转载于:https://juejin.im/post/5c7650f7518825408e5ce4b9

你可能感兴趣的文章
在IIS上创建FTP服务
查看>>
Orchard之在前台显式一个属于自己的列表
查看>>
openfire文件夹
查看>>
Eclipse下快速打开本地文件的插件easy explore
查看>>
uva216 Getting in Line
查看>>
黑龙潭,一个夏日亲子游的好地方
查看>>
编译安装 nginx的http_stub_status_module监控其运行状态
查看>>
双绞线的制作,T568A线序,T568B线序
查看>>
strcat的几种实现及性能比较
查看>>
Apache Spark技术实战之1 -- KafkaWordCount
查看>>
Add Binary Leetcode java
查看>>
缓存使用的一些注意事项
查看>>
将cocos2dx项目从VS移植到Eclipse
查看>>
android 屏幕适配原则
查看>>
plot sin 动态配置rc settings
查看>>
一次解决页面特效问题的排查记录
查看>>
Shopilex - 开源免费网店系统
查看>>
ubuntu14.04 安装搜狗输入法
查看>>
内省—beanutils工具包
查看>>
[WP8.1UI控件编程]SemanticZoom控件实现分组列表
查看>>