• JavaScript、ES5和ES6的介绍和区别


    JavaScript简介 
    JavaScript一种动态类型、弱类型、基于原型的客户端脚本语言,用来给HTML网页增加动态功能。 
    JavaScript由三部分组成: 
    ECMAScript(核心)+DOM(文档对象模型)+BOM(浏览器对象模型) 
    ECMAScript作为核心,规定了语言的组成部分:语法、类型、语句、关键字、保留字、操作符、对象 
    DOM把整个页面映射为一个多层节点结果,开发人员可借助DOM提供的API,轻松地删除、添加、替换或修改任何节点。 
    BOM支持可以访问和操作浏览器窗口的浏览器对象模型,开发人员可以控制浏览器显示的页面以外的部分 
    ES5简介 
    ECMAScript第五个版本,增加了以下特性 
    1、strict模式 
    2、Array的every、some、forEach、filter、indexOf、lastIndexOf、isArray、map、reduce、reduceRight等方法 
    3、Object方法 
    ES6 
    ECMAScript第六个版本,增加的新特性: 
    1、块级作用域 关键字let,常量const 
    2、对象字面量的属性赋值简写 
    3、赋值解构 
    4、函数参数-默认值、参数打包、数组展开(Default、Rest、Spread) 
    5、箭头函数 Arrow functions 
    简化了代码形式,默认return表达式结果 
    自动绑定语义this,即定义函数时的this。 
    6、字符串模板Template strings 
    7、Iterators(迭代器)+for..of 
    迭代器的next方法,调用会返回: 
    (1)返回迭代对象的一个元素:{done:false, value:elem} 
    (2)如果已经达到迭代对象的末端:{done:true, value:retVal} 
    8、生成器(Generators) 
    9、Class,有constructor、extends、super 
    10、Modules 
    (1)具有CommonJS的精简语法、唯一导出出口(single exports)和循环依赖(cyclic dependencies)的特点 
    (2)类似AMD,支持异步加载和可配置的模块加载 
    11、四种集合类型,Map+Set+WeakMap+WeakSet 
    12、一些新的API 
    Math+Number+String+Array+Object APIs 
    13、Proxies 
    使用代理(Proxy)监听对象的操作,包括get、set、has、deleteProperty、apply、construct、getOwnPropertyDescriptor、defineProperty、getPrototypeOf、setPrototypeOf、enumerate、ownKeys、preventExtensions、isExtensible。 
    14、Symbols 
    一种基本类型,通过调用symbol函数产生,接收一个可选的名字参数,该函数返回的symbol是唯一的。 
    15、Promises 
    是处理异步操作的对象,使用了Promise对象之后可以用一种链式调用的方式来组织代码,让代码更直观 
    最常用的ES6特性 
    let,const,class,extends,super,arrow functions,template string,destructuring,default,rest arguments。 
    1、let,const用途与var类似,都是用来声明变量的。 
    ES5只有全局作用域和函数作用域,会造成内层变量覆盖外层变量; 
    const也用来声明变量,但是声明的是常亮。一旦声明,常亮的值就不能改变,当尝试去改变const声明的变量时,浏览器就会报错。 
    2、class,extends,super 
    class类里的constructor方法,即为构造方法,this关键字则代表实例对象。 
    class之间可以通过extends关键字实现继承。 
    super关键字,它指代父类的实例(即父类的this对象)。子类必须在constructor方法中调用super方法,否则新建实例时会报错。 
    3、arrow function 
    箭头函数的形式 
    (参数)=>{函数体操作一;函数体操作二;return 返回值} 
    4、template string 
    传统的写法需要用大量的‘+’号来连接文本与变量,而使用ES6的新特性模板字符串‘’后,可以用反引号()来标识起始,用${}’来引用变量,而且所有的空格和缩进都会被保留在输出之中。 
    5、Destructuring(解构) 
    ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值。 

  • 相关阅读:
    桶排序
    基数排序
    计数排序
    归并排序
    快速排序
    优先级队列-堆实现
    堆排序
    红黑树
    【转】二叉树
    ubuntu 16.04 mysql 相关
  • 原文地址:https://www.cnblogs.com/ysx215/p/11390392.html
Copyright © 2020-2023  润新知