ES5 ES6

 JS包含三个部分:

 ECMAScript(核心)    扩展==>浏览器端:BOM(浏览器对象模型),DOM(文档对象模型)    扩展==>服务器端:Node

ES5严格模式:

    作用:消除Javascript语法的一些不合理、不严谨之处, 消除代码运行的一些不安全之处

    ,为未来新版本的Javascript做好铺垫

    使用:在全局或函数的第一条语句定义为: 'use strict'

    语法:必须用var声明变量,禁止自定义的函数中的this指向window,创建eval作用域,对象不能有重名的属性

JSON对象:

    与xml具有相同的特性,是一种数据存储格式,但json相比xml更易于人编写和阅读更易于生成和解析

    JSON.stringify(obj): js对象(数组)转换为json对象(数组)

    JSON.parse(obj): json对象(数组)转换为js对象(数组)

Object扩展:

     Object.create(prototype, [descriptors]):以指定对象为原型创建新的对象,为新的对象指定新的属性, 并对属性进行描述            value(指定值),writable(标识当前属性值是否是可修改的, 默认为false),configurable(标识当前属性是否可以被删除 默认为false),enumerable(标识当前属性是否能用for in 枚举 默认为false)

    Object.defineProperties(object, descriptors):为指定对象定义扩展多个属性           get(获取) set(修改)            存取器属性:setter,getter一个用来存值,一个用来取值

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){}) : 遍历过滤出一个新的子数组, 返回条件为true的值


typeof查看数据类型

function扩展:

    Function.prototype.bind(obj):    作用:将函数内的this绑定为obj,并将函数返回

    面试题:区别bind()与call()和apply():

            都能指定函数中的this    call()/apply()是立即调用函数    bind()是将函数返回


ES6:

    let关键字(声明变量) 

        特点:在块作用域内有效,不能重复声明,不会预处理不存在变量提升   应用:循环遍历加监听,使用let取代var是趋势

    const关键字(定义一个常量)

        特点:不能修改,在块作用域内有效,不能重复声明,不会预处理不存在变量提升    应用:保存不用改变的数据

    变量的解构赋值

        从对象或数组中提取数据并赋值给变量(多个)用途:给多个形参赋值

        对象的解构赋值:let{n,a} = {n:'tom',a:12}

        数组的解构赋值:let[a,b] = [1,'hello']

模板字符串:

    必须用``包含,变化的部分使用$(xxx)定义


简化的对象写法:

    省略同名的属性值,省略方法的function


箭头函数:

    用来定义匿名函数

特点:

    1、简洁

    2、箭头函数没有自己的this,箭头函数的this不是调用的时候决定的,而是在定义的时候所处的对象就是它的this

    3、扩展理解: 箭头函数的this看外层的是否有函数,

        如果有,外层函数的this就是内部箭头函数的this,

        如果没有,则this是window。

语法:

    没有参数:()=> console.log('xxxxx')

    一个参数:i => i+2

    大于一个参数:(i,j) => i+j

    函数体不用大括号:默认返回结果

    函数体如果有多个语句,需要用{}包围,若有需要返回的内容需要手动返回

使用场景:多用来定义回调函数

三点运算符:


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。