美文网首页
es6解读1: let, const 和 smybol

es6解读1: let, const 和 smybol

作者: HowlEagle101Div | 来源:发表于2017-10-27 10:01 被阅读0次

let const 作用域

作用域概念

+ 全局作用域
+ 函数作用域
+ 块级作用域

如何使用let和const

  • 使用let

  1. 形成块级作用域
  2. es6下强制开启严格模式,而在es5下,需要"use strice"才能开启严格模式;
  • 使用const

  1. 声明的常量不能修改;但是对象可以修改,因为对象是对地址的引用,我们可以在内存空间中更改对象
function last(){
      const k ={
        a:1
      }
      k.a = 123;
      console.log(k) //123
}
  1. 声明的时候必须赋值
  2. const也有块级作用域概念

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) //{abc: 345, c: 456, Symbol(abc): "123"}
    for(let [key,value] of Object.entries(obj) ){
        console.log('let of',key,value) //let of abc 345 let of c 456
    }
  • 解决办法:通过以下代码可以取到Symbol的值;Object.getOwnPropertySymbols可以拿到Symbol对象的值;
 Object.getOwnPropertySymbols(obj).forEach(function (item) {
        console.log(obj[item])  //123
    })
  • 返回了所有key和value值;通过es6最增的Reflect.ownKeys(obj)
Reflect.ownKeys(obj).forEach(function (item) {
        console.log(item,obj[item]) //abc 345,c 456, Symbol(abc) "123"
    });

相关文章

  • es6解读1: let, const 和 smybol

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

  • es6总结一

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

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

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

  • ES6之 let 和 const 命令

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

  • (JS)

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

  • es6解读1: let,const和symbol

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

  • ES6(let 与 const)

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

  • es6,es7,es8语法总结

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

  • ES 6 7 8 随笔 QAQ

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

  • react 入门基础(一)之ES6

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

网友评论

      本文标题:es6解读1: let, const 和 smybol

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