美文网首页
Es6语法----声明

Es6语法----声明

作者: Sujz | 来源:发表于2017-12-21 17:45 被阅读10次

Es6 在 Es5 的基础上,新增了4种 声明方式,一共有6种:

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

今天学习了 Let 和 const ,后续会补充其余新增的2种;

Let(变量声明):

1. 块级作用域:  let 声明的变量只有自己所在的 作用域 能够获取和调用;

2. 关闭了 变量提升, 使代码运行更合理

3. 暂时性死区:  在let作用域内,let的所有变量获取和调用必须在,let声明之后才可以获取和调用;

4.不允许重复声明

Const(常量声明):

1. 块级作用域:  const 声明的变量只有自己所在的 作用域 能够获取和调用;

2. 关闭了 变量提升, 使代码运行更合理

3. 暂时性死区:  在const作用域内,const的所有变量获取和调用必须在,const声明之后才可以获取和调用;

4.不允许重复声明

5.const声明的常量不能更改(地址);

本质: const实际上保证的,并不是变量的值不得改动,而是变量指向的那个内存地址不得改动。

例如:

const obj = {};

obj.name = "Sujz"; // 新增属性成功

obj = {}; // 报错 (因为,改变了 地址 )

如果想将对象冻结(即,不能新增属性):

const foo = Object.freeze({});

foo.prop = 123; // 常规模式,这行不起作用,即 无法改变 foo 的值,也无法新增 foo 的属性,并且,在严格模式下,还会报错;

除了冻结对象本身,对象的属性也该冻结:

var constantize = (obj) => {

  Object.freeze(obj);

  Object.keys(obj).forEach( (key, i) => {

    if ( typeof obj[key] === 'object' ) {

      constantize( obj[key] );

    }

  });

};

相关文章

  • ES6语法

    ES6语法 1.ES5和ES6声明变量的方式对比 ES5中声明变量的方式: ES6中声明变量的方式: 2. var...

  • ES6语法

    ES6解构赋值: 栗子: ES6对象声明: ES6模块语法: 导入导出对应 export default rout...

  • Es6语法----声明

    Es6 在 Es5 的基础上,新增了4种 声明方式,一共有6种: 1. var 2.function 3.let ...

  • es6-类

    es6有一种与其他语言中类似的特性:类声明。同时,他也是es6中最简单的形式。 基本的类声明语法 要声明一个类,首...

  • es6语法

    es6语法 1. 定义变量 var的缺点: 允许重复声明 不能声明常量 没有块级作用域let的作用: ...

  • js变量声明中var和let区别

    var和let(ES6语法) 区别: 1.通过var来声明的变量,可以重复声明,let不可以2.通过var来声明的...

  • ES6详解1

    es6语法 es6新增命令 let let 类似于 var 用来声明变量 ,let 命令所在的 代码块内才生效{l...

  • ES6笔记

    es6语法 块级作用域 let var 声明的变量没有局部作用域let 声明的变量有局部作用域 恒量 const ...

  • let var const的区别

    1. ES6 var:在ES6出来之前,声明变量都只能使用var关键字 let和const都是ES6出来的新语法 ...

  • 2017-07-11

    ES6基础语法 基础用法 let 用来声明变量 它的用法类似于var,但是所声明的变量,只在let命令所在...

网友评论

      本文标题:Es6语法----声明

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