美文网首页
ES6解读2:const、let和symbol

ES6解读2:const、let和symbol

作者: 蚊小文 | 来源:发表于2017-10-01 22:38 被阅读0次

let 和 const

ES6新增了块作用域,新增了两种定义变量的方法,定义变量时推荐使用let替代var,let定义的变量在块作用域内有效,const用以指定固定值,这两类新定义的变量不允许在定义前使用,也不允许重复定义。
使用let
1、形成块级作用域
2、es6下强制开启严格模式,而在es5下,需要"use strice"才能开启严格模式;

const
1、声明的常量不能修改;但是对象可以修改,因为对象是对地址的引用,我们可以在内存空间中更改对象

function last() {
           const k={
               a:1
           };
           k.a=123;
           console.log(k)
}

2、声明的时候,必须赋值;
3、const也有块作用域的概念;

Symbol

Symbol保证每个属性的名字都是独一无二的,这样就从根本上防止了属性名的冲突;
它是一种类似于字符串的数据类型,Symbol函数可以接受一个字符串作为参数,表示对 Symbol 实例的描述;
Symbol的概念:用这种方式声明的数据类型,永远是独一无二的值;
Symbol的作用:避免属性名相同的问题

  • 注意:对象中,有用到symbol做key值的话,是取不到的;即let...of只能拿到非Symbol对象的值;
    let a1=Symbol.for('abc');
    let obj={
        [a1]:'123',
        'abc':345,
        'c':456
    };
    console.log(obj)
    for(let [key,value] of Object.entries(obj) ){
        console.log('let of',key,value)
    }
  • 解决办法:通过以下代码可以取到Symbol的值;Object.getOwnPropertySymbols可以拿到Symbol对象的值;
    Object.getOwnPropertySymbols(obj).forEach(function (item) {
        console.log(obj[item])
    })

返回了所有key和value值;通过es6最增的Reflect.ownKeys(obj)

    Reflect.ownKeys(obj).forEach(function (item) {
        console.log(item,obj[item])
    });//返回了所有key和value值;

相关文章

  • ES6解读2:const、let和symbol

    let 和 const ES6新增了块作用域,新增了两种定义变量的方法,定义变量时推荐使用let替代var,let...

  • es6解读1: let,const和symbol

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

  • es6都有哪些新特性?

    const let symbol 解构: const {key1, key2} = obj; 扩展运算符 ...:...

  • (JS)

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

  • ES6(let 与 const)

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

  • es6总结一

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

  • var、let和const的区别

    1. let和const是ES6新增的变量定义符。 2. let和const的运用域为块级作用域。 3. var存...

  • let 和 const

    let 和const是es6新增的命令,用于声明变量 var和let/const的区别1.块级作用域2.不存在变量...

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

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

  • let和const命令

    es6标准入门 第2章 let和const命令 2.1 let命令 2.1.1 基本用法 let用来声明变量,但所...

网友评论

      本文标题:ES6解读2:const、let和symbol

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