博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaScript、ES5和ES6的介绍和区别
阅读量:5358 次
发布时间:2019-06-15

本文共 1984 字,大约阅读时间需要 6 分钟。

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允许按照一定模式,从数组和对象中提取值,对变量进行赋值。 

转载于:https://www.cnblogs.com/ysx215/p/11390392.html

你可能感兴趣的文章
Week03-面向对象入门
查看>>
一个控制台程序,模拟机器人对话
查看>>
Vue 2.x + Webpack 3.x + Nodejs 多页面项目框架(上篇——纯前端多页面)
查看>>
我的PHP学习之路
查看>>
【题解】luogu p2340 奶牛会展
查看>>
对PostgreSQL的 SPI_prepare 的理解。
查看>>
解决响应式布局下兼容性的问题
查看>>
使用DBCP连接池对连接进行管理
查看>>
【洛谷】【堆+模拟】P2278 操作系统
查看>>
hdu3307 欧拉函数
查看>>
Spring Bean InitializingBean和DisposableBean实例
查看>>
[容斥][dp][快速幂] Jzoj P5862 孤独
查看>>
Lucene 学习之二:数值类型的索引和范围查询分析
查看>>
软件开发工作模型
查看>>
Java基础之字符串匹配大全
查看>>
面向对象
查看>>
lintcode83- Single Number II- midium
查看>>
移动端 响应式、自适应、适配 实现方法分析(和其他基础知识拓展)
查看>>
selenium-窗口切换
查看>>
使用vue的v-model自定义 checkbox组件
查看>>