es系列

Posted liqunblog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了es系列相关的知识,希望对你有一定的参考价值。

重要版本

 - es5 : 09年发布
 - es6 : 15年发布, ECMA2015
 - es7 : 16年发布, ECMA2016 (微变)

ES5部分新增内容

严格模式
    - use strict声明
    - 必须用var定义变量
    - 禁止自定义函数this指向window
    - eval创建自己的作用域,避免函数不安全
    - 对象不允许有重名的属性
JSON对象
    - JSON.stringify(obj/arr) //对象(数组)变字符
    - JSON.parse(json)        //字符变对象(数组)

Object扩展

Object常用的两个静态方法:
    - Object.create(prototype,[descriptors])
        - 以对象为原型对象创建新对象,并扩展可以描述的属性
            - value: 指定值
            - writable: false //是否可修改
            - configurable: false //是否可删
            - enumerable: false //是否可列举
    - Object.defineProperties(Object,descriptors)
        - 指定对象扩展多个属性
            - get //获取这个属性时惰性建立属性值
            - set //修改这个属性时触发的函数(外部修改无效)
对象本身的两个方法:
    - get propertyName(){} //获取propertyName时惰性建立属性值
    - set propertyName(data){} //修改时触发的函数(外部修改无效)

Array扩展

Array.prototype.indexOf(value)
Array.prototype.lastIndexOf(value)
Array.prototype.forEach(function(item,index){}) //同步遍历
Array.prototype.map(function(item,index){})
Array.prototype.filter(function(item,index){})

Function扩展

    -bind //改变返回
    -call apply//改变执行(js)

ES6部分新增内容

let和const

- let
        - 块级作用域有效
        - 不可重复定义
        - 不会变量提升
        - 特别地,循环定义时let仅第一次有效,不同于var为全局变量
    - const
        - 定义常量
        - 其余同let

 解构赋值

    - 对象或数组

模板字符串

    - `${}`

对象简写方法

    - 变量key value同名
    - 函数func(){}

箭头函数

    - 官方:箭头函数无自己的this(所以按照闭包原理:this不是在调用的时候决定的,而是在定义的时候所处的对象就是this)
    - 有外层函数就是外层函数的this,无直到最外层则为window

 

以上是关于es系列的主要内容,如果未能解决你的问题,请参考以下文章

vue2.0 代码功能片段

ES6 系列 90% 的前端都会使用 ES6 来简化代码,你都用过吗?

在GLSL ES中的片段着色器上旋转纹理

全栈编程系列SpringBoot整合Shiro(含KickoutSessionControlFilter并发在线人数控制以及不生效问题配置启动异常No SecurityManager...)(代码片段

react入门系列之todolist代码优化(使用react 新特性,es6语法)

elasticsearch系列七:ES Java客户端-Elasticsearch Java client(ES Client 简介Java REST ClientJava ClientSpri(代码