美文网首页
1.let 和 const 命令

1.let 和 const 命令

作者: 毛贵军 | 来源:发表于2019-01-25 09:28 被阅读0次

回到目录

前言

ES 2015 之后新增了一种作用域---块级作用域
下面用到的 let const 都是在块级作用域里生效的
例如:

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

a; // ReferenceError: a is not defined.
b; // 1

let 命令

序号 特点 介绍
1 块级作用域内生效 代码块{} 内声明的变量只能在{}内使用,出去了就没有了
2 不存在变量提升 所有变量必须先声明后使用,否则报错
3 暂时性锁区 只要块级作用域内存在 let 命令,它所声明的变量就“绑定”(binding)这个区域,不再受外部的影响。
4 不允许重复声明 let 不允许在相同作用域内,重复声明同一个变量。

例子

1.块级作用域内生效
{
  let a = 10;
  var b = 1;
}

a; // ReferenceError: a is not defined.
b; // 1
2.不存在变量提升
// var 的情况
console.log(foo); // 输出undefined
var foo = 2;

// let 的情况
console.log(bar); // 报错ReferenceError
let bar = 2;
3.暂时性锁区
if (true) {
  // TDZ开始
  tmp = "abc"; // ReferenceError
  console.log(tmp); // ReferenceError

  let tmp; // TDZ结束
  console.log(tmp); // undefined

  tmp = 123;
  console.log(tmp); // 123
}
4.不允许重复声明
// 报错
function func() {
  let a = 10;
  var a = 1;
}

// 报错
function func() {
  let a = 10;
  let a = 1;
}
function func(arg) {
  let arg; // 报错
}

function func(arg) {
  {
    let arg; // 不报错
  }
}

const 命令

基本用法

const 声明一个只读的常量。一旦声明,常量的值就不能改变

特别提示

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

特点

let 具有的特点 const 同样也具有

序号 特点 解释
1 声明之后不能修改变量的值 见特别提示
2 声明之后必须初始化 特点 1 决定的

例子

1.声明之后不能修改变量的值
const PI = 3.1415;
PI; // 3.1415

PI = 3;
// TypeError: Assignment to constant variable.
2.声明之后必须初始化
const foo;
// SyntaxError: Missing initializer in const declaration
3.声明的是个引用类型
const obj = { a: 15 };
obj.a = 16;
obj.a; // 16

ES6 声明变量的六种方法

1 2 3 4 5 6
名称 var function let const import class

回到目录

相关文章

  • es6之let与const

    本文目录: 1.let和块级作用域 2.const命令 3.var、let、const三者的区别 1.let和块级...

  • 1.let 和 const 命令

    回到目录 前言 ES 2015 之后新增了一种作用域---块级作用域下面用到的 let const 都是在块级作用...

  • ECMAScript 6 入门

    1.let 和 const 命令 let 命令 基本用法 ES 6 新增了 let 命令,用来声明变量,它的用法类...

  • 第二章 let和const

    1.let和const 1.let let用于声明变量,类似于var,但是所声明的变量只在let命令所在的代码块内...

  • ES6语法总结(一)变量的声明

    一:let和const命令 1.let命令 (1) ES6新增了let命令,用来声明变量。用法类似于var,但是声...

  • let和const命令

    1.let命令2.块级作用域3.const命令 1.let命令 1.用let声明变量,只在块级作用域有效 在花括号...

  • 13.ES6常用新特性总结

    1.let && const let命令也用于声明对象,但是作用域为局部 { let a = 10; va...

  • 1.let和const

    原文地址其他参考资料 let:声明变量 const:声明只读常量 二者共同点: 只在代码块内有效,并且在用let或...

  • 1.let和const

  • ES6学习笔记

    1.let 和 const 命令 let 特性: 用来声明变量,只在它所在的代码块中有效,所以在此块级作用域中不可...

网友评论

      本文标题:1.let 和 const 命令

      本文链接:https://www.haomeiwen.com/subject/gwzpjqtx.html