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