美文网首页
ES6 let const

ES6 let const

作者: 工藤新二_cad2 | 来源:发表于2018-11-29 14:51 被阅读0次

暂时性死区:只要块级作用域内存在let命令,它所声明的变量就绑定这个区域,不再受外部影响。

暂时性死区:let.const

let,不允许重复声明,let不允许在相同作用域内,重复声明同一个变量;不能在函数内部重新声明参数;

const命令

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

   同时也说明,一旦声明,就要立即初始化,否则也报错。

与let相似:

   const命令声明的常量也不提升,同样存在暂时性死区,只能在声明的位置后使用。

   也不可以重复声明。

对于复合类型的变量,变量名不指向数据,而是指向数据所在的地址。const命令只

   是保证变量名指向的地址不变,并不保证该地址的数据不变,所以将一个对象声明为常量,

   必须非常小心。

const foo = {};

            foo.prop = 123;

            console.log(foo.prop);

            //上面的常量foo存储的是对象的地址,这个地址不可变,但依然可以添加属性。const a = [];

            a.push("hello");

            a.length = 0;//          a = ["Dave"]  //报错,赋值就是更换地址,不行的。//如果真的想把对象冻结,应该使用Object.freeze方法。const foo2 = Object.freeze({});

            //常规模式下,下面一行不起作用//严格模式下,会报错foo.prop = 123;

  ES5只有两种声明变量的方法:var和function。  

  ES6有6种:var function let const class import

全局对象属性:

   全局对象是最顶层的对象,在浏览器环境下指的是window对象,在node指的是

   global对象。ES5中,全局对象的属性和全局变量是等价的。

   未声明的全局变量,自动成为全局对象window的属性,这被认为是js的最大败笔。

   ES6为了改变这一点,一方面规定,为了保持兼容性,var命令和function命令声明的全局变量,

   依旧是全局对象的属性,另一方面规定,let,const,class命令声明的全局变量不属于全局对象的

   属性。也就是说,从ES6开始,全局变量将逐渐与全局对象的属性脱钩。

  ES5只有全局作用域和函数作用域,没有块级作用域,有很多不合理场景:

相关文章

  • (JS)

    ES6 let、const和var的区别 let和const声明变量不存在变量提升 let和const不能重复声明...

  • es6,es7,es8语法总结

    ES6 1. var let const let,const具有块级作用域,不具有变量提升 const 用...

  • ES 6 7 8 随笔 QAQ

    ES6 1. var let const let,const具有块级作用域,不具有变量提升 const 用...

  • ES6(let 与 const)

    ES6中引入了let 和 const来声明变量,我们来看下let 和 const 的使用 一、let let定义的...

  • react 入门基础(一)之ES6

    ####ES6 let const var 三者的区别 ### 1. let const 不能重复声明变...

  • es6总结一

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

  • ES6之 let 和 const 命令

    ES6 之 let 和 const 命令 1、let 命令 1.1、基本用法 ES6 新增了let命令,用来声明变...

  • es6解读1: let, const 和 smybol

    let const 作用域 作用域概念 如何使用let和const 使用let 形成块级作用域 es6下强制开启...

  • es6常用语法

    const 和 let 在es6语法规范中,尽量使用let替代var,如果在const 和let中选,优先使用co...

  • 总结一下前端常见javascript基础面试题:

    1.var ,let 和const的区别: let和const是es6新增的语法, let和var都可以定义变量,...

网友评论

      本文标题:ES6 let const

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