博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
es6从零学习(一)let 和 const 命令
阅读量:6857 次
发布时间:2019-06-26

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

es6从零学习(一):let 和 const 命令

一:let 变量

1、块级作用域{}:let只在自己的块级作用域内有效。

for(let i =0;i<3;i++) {        console.log(i)}console.log(i)

以上代码输出0,1,2之后,输出了i is not defined。因为i是let定义的,只能在自己的块级作用域读取到。

for(var i =0;i<3;i++) {        console.log(i)} console.log(i)

以上代码输出0,1,2,3。

 

 

2、let定义的变量不要重复定义,会报错。

let a = 1let a = 3

  

二:const:常量

1、声明必须定义值

const num

此时会报错

2、不能重复定义

const num = 2const num = 4

此时会报错  

3、const定义的对象,可以修改对象的值

const k = {        a: 1}k.a = 2k.b = 2console.log(k)

此时输出的值为{a:2,b:2}

原因:因为const定义的是k,而k相当于一个指针,指向对象值,对象值修改和k怎么定义没有关系。

4、const定义的数组,可以修改数组的值

const k = [1,2,3]k[0] = 2console.log(k)

此时输出的值为[2,2,3]。原因与上面一致

总结:

const实际上保证的,并不是变量的值不得改动,而是变量指向的那个内存地址不得改动。对于简单类型的数据(数值、字符串、布尔值),值就保存在变量指向的那个内存地址,因此等同于常量。但对于复合类型的数据(主要是对象和数组),变量指向的内存地址,保存的只是一个指针,const只能保证这个指针是固定的,至于它指向的数据结构是不是可变的,就完全不能控制了。因此,将一个对象声明为常量必须非常小心。

 

三:let和const的共同点:

1、一旦声明变量,就必须立即初始化

2、只在声明所在的块级作用域内有效

3、声明的常量不提升,存在暂时性死区,只能在声明的位置后面使用。(声明必须在使用之前)

4、不可重复声明

 

转载于:https://www.cnblogs.com/momozjm/p/8136010.html

你可能感兴趣的文章
自动建立SSH双机信任脚本
查看>>
漏洞扫描工具--Nikto漏洞扫描工具调研
查看>>
Django 程序中添加js插件文本编辑器
查看>>
vc++windows编程技术(1)
查看>>
绿茶系统 Ghost WinXP SP3 笔记本优化版 V2013.03
查看>>
由猜数字谈起
查看>>
项目部署solr提取文件思路
查看>>
VS2008无法切换到视图设计器
查看>>
mini2440_LCD_x35移植
查看>>
项目管理实施流程(五)详细设计与代码编写
查看>>
单例模式
查看>>
SEO大讲堂:SEO优化十大要点
查看>>
ROW_NUMBER() OVER(PARTITION BY COLUMN ORDER BY COLUMN)
查看>>
Linux用户管理(四)Linux用户管理
查看>>
DWR+S2SH
查看>>
ESXi 5.0启动relocating modules and starting up the kernel解决
查看>>
Android 第一次运行程序提示框操作
查看>>
学历与经验
查看>>
.mui-bar-nav~.mui-content这两个class之间的~什么意思?
查看>>
Apache Shiro简单示例
查看>>