美文网首页
let和const命令

let和const命令

作者: xiayujlu | 来源:发表于2017-03-22 11:23 被阅读7次

let和var的一些区别

  1. var存在变量提升,let不存在变量提升
console.log(a)    //undefined
console.log(b)    //"ReferenceError: a is not defined
var a=1
let b=2

暂时性死区(temporal dead zone,简称 TDZ)

a=2    //"ReferenceError: a is not defined
let a
console.log(typeof keke)    //undefined
console.log(typeof a)    //"ReferenceError: a is not defined
let a

暂时性死区的本质就是,只要一进入当前作用域,所要使用的变量就已经存在了,但是不可获取,只有等到声明变量的那一行代码出现,才可以获取和使用该变量。

  1. let不可以重复声明
let a=1
let a=2  //"SyntaxError: Identifier 'a' has already been declared
  1. 块级作用域
{
    var a=1
}
console.log(a)    //1
{
    let b=1
}
console.log(b)    //"ReferenceError: b is not defined

const用法与let一致,区别在于const声明只读常量

const A=1
A=2    //"TypeError: Assignment to constant variable.

const实际上保证的,并不是变量的值不得改动,而是变量指向的那个内存地址不得改动。对于简单类型的数据(数值、字符串、布尔值),值就保存在变量指向的那个内存地址,因此等同于常量。但对于复合类型的数据(主要是对象和数组),变量指向的内存地址,保存的只是一个指针,const只能保证这个指针是固定的

const A={}
A.a=1
console.log(A)    //Object {a: 1}
A=['a','b']    //"TypeError: Assignment to constant variable.

相关文章

  • let和const

    新的赋值语句let和const let和const命令

  • ES6的let 和 const 命令

    let 和 const 命令 let 命令 块级作用域 const 命令 顶层对象的属性 gl...

  • ES6需要记忆理解的地方

    let和const命令 1、let和const均无变量提升。2、let变量指向的地址可变,const指向的地址不可...

  • 重读 ES6(一)

    一、let 和 const 命令 let 命令 let 与 var 的区别:let 声明的变量只在 let 命令所...

  • js 中var contst let 之间的区别

    ECMAScript 6 新增 const 和 let 命令,用来声明变量。 那么const,let和var 在声...

  • es6常用语法(一)

    let 和 const 命令 let 命令 只在let命令所在的代码有效 let命令,用来声明变量。它的用法类似于...

  • es6总结一

    es6基础 let和const命令 let和const用于声明变量let跟var的区别 1、let定义过的变量不能...

  • ES6笔记

    let 和 const ES6 明确规定,如果区块中存在let和const命令,这个区块对这些命令声明的变量,从一...

  • ECMAScript 6 入门

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

  • ES6基础入门

    变量 let 命令 const 命令 函数

网友评论

      本文标题:let和const命令

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