当前位置: 首页 > news >正文

ECMAScript6块级声明:let声明、const声明

块级声明用于声明在指定块的作用域之外无法访问的变量。块级作用域存在于函数内部或者字符{}之间的区域。

1、let 声明

在 ES6 中新增了使用 let 关键字声明变量的方式。let 的用法和 var 类似,所不同的是,使用 let 声明的变量只在 let 所在的代码块内有效。例如,在代码块中分别使用 var 和 let 声明两个变量,然后在代码块之外调用这两个变量,代码如下:

{var a = 10;let b = 20;
}
console.log(a); //10
console.log(b); //报错:b没有定义

使用 let 声明变量特别适合于 for 循环中,循环变量 i 只在 for 循环体内有效,在循环体外引用就会抛出错误,代码如下:

for (let i = 0; i < 10; i++) {document.write(i); //输出0123456789
}
document.write(i);     //报错:i没有定义

使用 let 不允许在相同作用域内重复声明同一个变量,如果在同一作用域内已经存在某个变量,此时再使用let对它进行声明就会抛出错误。

var num = 10;
let num = 20;//报错:标识符num已声明

2、const 声明

在 ES6 中提供了 const 关键字用于声明一个只读的常量。使用 const 定义常量后,常量的值就不能改变,而且在声明时必须对其初始化赋值。const 的作用域和 let 的相同,使用 const 声明的常量只在 const 所在的块级作用域内有效。

【实例】将圆周率π的近似值定义为一个常量。

const PI = 3.14

如果将一个对象定义成一个常量,那么对象的引用不能修改,而对象的属性可以修改。示例代码如下:

const user = {name:"Tom"
};
user.name="Jerry";
document.write(user.name);//输出Jerry

如果不允许修改对象的属性,可以使用Object.freeze()方法冻结对象。示例代码如下:

const user = Object.freeze({name:"Tom"
});
user.name="Jerry";
document.write(user.name);//输出Tom

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • zabbix7.0 设置中文语言( Debian GNU/Linux 12)
  • pox破晓工作流部署过程
  • 【自动驾驶】无人驾驶中的“先验”和“后验”
  • 【ARM 芯片 安全与攻击 5.4 -- Meltdown 攻击与防御介绍】
  • C++入门——03内存管理
  • 数据结构----链表
  • 【iOS】—— 离屏渲染
  • REPO转GIT遇一问题
  • Linux - 权限
  • 深入理解HTTPS协议:CA证书的安全机制
  • B站搜索建库架构优化实践
  • 为什么要有二级指针
  • 第三章 PyTorch基础教程
  • windows C++-通过 C++/WinRT 创作 COM 组件(一)
  • 【产品那些事】什么是应用程序安全态势管理(ASPM)?
  • 「前端早读君006」移动开发必备:那些玩转H5的小技巧
  • 2017 前端面试准备 - 收藏集 - 掘金
  • co.js - 让异步代码同步化
  • eclipse的离线汉化
  • Linux链接文件
  • SpiderData 2019年2月13日 DApp数据排行榜
  • SpiderData 2019年2月25日 DApp数据排行榜
  • vuex 学习笔记 01
  • webpack+react项目初体验——记录我的webpack环境配置
  • WordPress 获取当前文章下的所有附件/获取指定ID文章的附件(图片、文件、视频)...
  • 记一次和乔布斯合作最难忘的经历
  • 聊聊sentinel的DegradeSlot
  • 马上搞懂 GeoJSON
  • 前端之Sass/Scss实战笔记
  • 浅谈Golang中select的用法
  • 融云开发漫谈:你是否了解Go语言并发编程的第一要义?
  • 深入体验bash on windows,在windows上搭建原生的linux开发环境,酷!
  • 在Unity中实现一个简单的消息管理器
  • 【云吞铺子】性能抖动剖析(二)
  • HanLP分词命名实体提取详解
  • 国内唯一,阿里云入选全球区块链云服务报告,领先AWS、Google ...
  • 好程序员大数据教程Hadoop全分布安装(非HA)
  • # 执行时间 统计mysql_一文说尽 MySQL 优化原理
  • ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException
  • #ifdef 的技巧用法
  • (4)STL算法之比较
  • (echarts)echarts使用时重新加载数据之前的数据存留在图上的问题
  • (PWM呼吸灯)合泰开发板HT66F2390-----点灯大师
  • (Redis使用系列) Springboot 使用redis实现接口Api限流 十
  • (附源码)计算机毕业设计ssm基于Internet快递柜管理系统
  • (四)【Jmeter】 JMeter的界面布局与组件概述
  • (转)PlayerPrefs在Windows下存到哪里去了?
  • .bat批处理(三):变量声明、设置、拼接、截取
  • .NET Compact Framework 3.5 支持 WCF 的子集
  • .NET Core Web APi类库如何内嵌运行?
  • .net core 控制台应用程序读取配置文件app.config
  • .net core开源商城系统源码,支持可视化布局小程序
  • .net core使用EPPlus设置Excel的页眉和页脚
  • .NET Project Open Day(2011.11.13)
  • .Net Remoting(分离服务程序实现) - Part.3