我是靠谱客的博主 缓慢电话,最近开发中收集的这篇文章主要介绍es6-let与const,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

ES2015(ES6) 新增加了两个重要的 JavaScript 关键字: let 和 const。

一、let

let 声明的变量只在 let 命令所在的代码块内有效,不能重复声明。

1、代码块内有效

{ let a = 0; var b = 1; }

a // ReferenceError: a is not defined

b // 1

2、不能重复声明

let a = 1; let a = 2;

a // Identifier 'a' has already been declared

3、不存在变量提升

let 不存在变量提升,var 会变量提升:

console.log(a); //ReferenceError: a is not defined

let a = "apple";

console.log(b); //undefined

var b = "banana";

二、const 命令

const 声明一个只读变量,声明之后不允许改变。意味着,一旦声明必须初始化,否则会报错。

 

暂时性死区:

var PI = "a";
if(true){
console.log(PI);
// ReferenceError: PI is not defined
const PI = "3.1415926";
}

ES6 明确规定,代码块内如果存在 let 或者 const,代码块会对这些命令声明的变量从块的开始就形成一个封闭作用域。代码块内,在声明变量 PI 之前使用它会报错。

const如何做到声明的值是常量

保证变量指向的内存地址所保存的数据不允许改动。

对于简单类型(数值 number、字符串 string 、布尔值 boolean),值就保存在变量指向的那个内存地址,因此 const 声明的简单类型变量等同于常量。

对于复杂类型(对象 object,数组 array,函数 function),变量指向的内存地址其实是保存了一个指向实际数据的指针,所以 const 只能保证指针是固定的,至于指针指向的数据结构变不变就无法控制了,所以使用 const 声明复杂类型对象时要慎重。

三、 var

定义变量,没有块的概念,可以跨块访问,不能跨函数访问,不初始化出现undefined,不会报错。

最后

以上就是缓慢电话为你收集整理的es6-let与const的全部内容,希望文章能够帮你解决es6-let与const所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部