当前位置:网站首页>ES6 introduction and let, var, const
ES6 introduction and let, var, const
2022-08-03 20:14:00 【Hey………】
ECMAScript6
一、简介
1、什么是ES6?
- ES的全称是ECMAScript,它是由ECMA国际标准化组织,制定的一项脚本语言的标准化规范.
2、为什么使用ES6?
- 变量提升特性增加了程序运行时的不可预测性
- 语法过于松散,实现相同的功能,不同的人可能会写出不同的代码
二、let(ES6新增的用于声明变量的关键字)
(1)let声明的变量只在所处于的块级有效
//let关键字就是用来声明变量的
let a = 10;
console.log(a); //10
//使用let关键字声明的变量具有块级作用域
if(true){
let b = 10;
console.log(b); //10
}
console.log(b); //报错:b is not defined
//在一个大括号中使用let关键字声明的变量才具有块级作用域,var关键字是不具备这个特点的
if(true){
let a = 10;
var b = 20;
}
console.log(b); //20
console.log(a); //报错:a is not defined
//防止循环变量变成全局变量
for(var i = 0; i < 2; i++){ //使用var
}
console.log(i); //2
for(let i = 0; i < 2; i++){ //使用let
}
console.log(i); //报错:i is not defined
(2)不存在变量提升
//使用let关键字声明的变量没有变量提升
console.log(a); //报错:a is not defined
let a = 20;
(3)暂时性死区
//使用letThe keyword declare variables of temporary dead zone
var num = 123;
if(true){
console.log(num); //报错:num is not defined
let num = 12;
}
三、 const(ES6新增的关键字)
作用:声明常量,常量就是值(内存地址)不能变化的量.
(1)具有块级作用域
//使用const关键字声明的常量具有块级作用域
if(true){
const a = 10;
console.log(a); //10
}
console.log(a); //a is not defined
(2)声明常量时必须赋值
//使用const关键字声明的常量必须赋初始值
const PI; //报错: Missing initializer in const declaration
const PI = 3.14;
(3)常量赋值后,值不能修改
//常量声明后值不可更改
const PI = 3.1415;
PI = 100; //报错:Assignment to constant variable 不能更改常量的值
const arr = [100,200];
arr[0] = "a";
arr[1] = "b";
console.log(arr); //['a','b']
arr = ['a','b']; //报错:Assignment to constant variable
四、let、const、var的区别
使用var声明的变量,其作用域为该语句所在的函数内,且存在变量提升现象.
使用let声明的变量,其作用域为该语句所在的代码块内,不存在变量提升.
使用constDeclare variables is constant,在后面出现的代码中不能再修改该常量的值.
边栏推荐
- List类的超详细解析!(超2w+字)
- 模板字符串概述
- 力扣59-螺旋矩阵 II——边界判断
- Internet Download Manager简介及下载安装包,IDM序列号注册问题解决方法
- async 和 await 原来这么简单
- RNA核糖核酸修饰荧光染料|HiLyte Fluor 488/555/594/647/680/750标记RNA核糖核酸
- Edge box + time series database, technology selection behind Midea's digital platform iBuilding
- php截取中文字符串实例
- MySQL Basics
- MapReduce介绍及执行过程
猜你喜欢

李沐动手学深度学习V2-BERT微调和代码实现
[email protected] 610/[email protected] 594/Alexa 56"/>染料修饰核酸RNA|[email protected] 610/[email protected] 594/Alexa 56

单调栈及其应用

宁德时代2号人物黄世霖辞任副董事长:身价1370亿

后台图库上传功能

边缘盒子+时序数据库,美的数字化平台 iBuilding 背后的技术选型

消除对特权账户的依赖使用Kaniko构建镜像

开源教育论坛| ChinaOSC

149. The largest number on a straight line, and check the set

【飞控开发高级教程4】疯壳·开源编队无人机-360 度翻滚
随机推荐
简易电子琴设计(c语言)
Leetcode sword refers to Offer 15. 1 in the binary number
安装anaconda并创建虚拟环境
Advantages and Disadvantages of Blind and Buried Via PCB Stacked Via Design
ES6--剩余参数
Anaconda virtual environment migration
622 设计循环队列——Leetcode天天刷【循环队列,数组模拟,双指针】(2022.8.2)
汉源高科8光口12电口交换机千兆8光8电12电16电网管型工业以太网交换机
面试官:为什么 0.1 + 0.2 == 0.300000004?
调用EasyCVR云台控制接口时,因网络延迟导致云台操作异常该如何解决?
leetcode 16. 数值的整数次方(快速幂+递归/迭代)
leetcode 16.01. 交换数字(不使用临时变量交换2个数的值)
Edge box + time series database, technology selection behind Midea's digital platform iBuilding
Use ControlTemplate or Style from resource file in WPF .cs and find the control
开源生态研究与实践| ChinaOSC
Pytorch GPU 训练环境搭建
剑指 Offer II 044. 二叉树每层的最大值-dfs法
8.3模拟赛总结
详解AST抽象语法树
Internet Download Manager简介及下载安装包,IDM序列号注册问题解决方法