zoukankan      html  css  js  c++  java
  • ES6笔记

    http://jspang.com/2017/06/03/es6/

    一、let、const

         1、let    不存在变量提升,暂时性死区

         2、块级作用域的出现,实际上使得获得广泛应用的立即执行函数表达式(IIFE)不再必要了。         

     1 // IIFE 写法
     2 (function () {
     3   var tmp = ...;
     4   ...
     5 }());
     6 
     7 // 块级作用域写法
     8 {
     9   let tmp = ...;
    10   ...
    11 }

            3、const申明的是只读的常量,一旦申明,无法改变。一旦申明,就必须初始化,不能后期赋值

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

            5、const实际上保证的,并不是变量的值不得改动,而是变量指向的那个内存地址不得改动。对于简单类型的数据(数值、字符串、布尔值),值就保存在变量指向的那个内存地址,因此等同于常量。但对于复合类型的数据(主要是对象和数组),变量指向的内存地址,保存的只是一个指针,const只能保证这个指针是固定的,至于它指向的数据结构是不是可变的,就完全不能控制了。因此,将一个对象声明为常量必须非常小心。

             6、顶层对象,在浏览器环境指的是window对象,在Node指的是global对象。ES5之中,顶层对象的属性与全局变量是等价的。

             7、ES6一方面规定,为了保持兼容性,var命令和function命令声明的全局变量,依旧是顶层对象的属性;另一方面规定,let命令、const命令、class命令声明的全局变量,不属于顶层对象的属性。也就是说,从ES6开始,全局变量将逐步与顶层对象的属性脱钩。

              8、global对象

    二、变量的解构赋值

    对象的解构与数组有一个重要的不同。数组的元素是按次序排列的,变量的取值由它的位置决定;而对象的属性没有次序,变量必须与属性同名,才能取到正确的值。

    三、扩展运算符(...)

    四、字符串模板 (${})

    五、新增的一些数组方法  Array.from()、Array.of()、find()、fill()、for...of

    六、箭头函数

    七、ES6中的对象

    八、Symbol

    九、set数据结构,和java里面的set一样

    十、map数据结构,和java里面的map一样

    十一、Proxy进行预处理

    十二、Promise

    十三、class 仿照的java里面的

    十四、import 和export

  • 相关阅读:
    交叉验证概述
    【Python那些事儿之十】range()和xrange()
    Numpy基础笔记
    matplotlib中使用imshow绘制二维图
    Django+Django-Celery+Celery的整合实战
    Nginx+uWSGI+Django部署web服务器
    uwsgi
    uwsgi 神器问题
    disagrees about version
    协议基础:SMTP:使用Telnet学习SMTP协议
  • 原文地址:https://www.cnblogs.com/zhaobao1830/p/7542092.html
Copyright © 2011-2022 走看看