JavaScript和ES6知识点整理

一.ES6简介
全称ECMAScript 6.0,由于是在2015年发布,也称为ES2015.主要是为了解决ES5的先天不足
目标与愿景:
(1)适应更复杂的应用;
(2)实现代码库之间的共享; .
(3)不断迭代维护新版本;
(4)支持更多语法,使用更方便;

二.箭头函数
箭头函数是ES6提供的语法结构,用于替换匿名函数
相当于简写了function,使用()代替,使用=>代替{}

传递两个参数,实现一个计算两个数之和的add函数
传递两个参数,参数必须使用括号包裹着
如果使用return返回一个执行语句,可以省略return,如第三种写法

三.数组展开
传递三个参数,实现一个计算任意个数之和的add函数
传递参数的时候,可以使用

还可以连接两个数组

四.数组方法
Array.from(json):将json字符串转为数组,json字符串必须要有长度属性

实例方法find( ):从数组中查找,传入一个有3个参数的匿名函数
value:当前查找的值
index:当前查找的数组索引
arr:当前数组

Array.of(变量):将变量转为数组,可以不要再使用eval进行转换,替代Array( )或new Array( )

实例方法fill(value,start,end):使用给定值填充数组,数组中的原有元素会被抹去,从位置start开始填充,不包含end位置遍历数组,以下方法都返回-个遍历器对象,可以使用for…of循环遍历,或使用next( )遍历
●entries( ):键值对遍历
●keys():键名遍历
●values( ):键值遍历

五.CommonJS模块化规范
CommonJs
●Node应用由模块组成,采用CommonJS模块规范
.●每个文件就是一 个模块,有自己的作用域
●在一个文件里面定义的变量、函数、类,都是私有的,对其他文件不可见
●在服务器端,模块的加载是运行时同步加载的
●在浏览器端,模块需要提前编译打包处理
特点
●所有代码都运行在模块作用域,不会污染全局作用域。
●模块可以多次加载,但是只会在第一-次加载时运行- -次, 然后运行结果就被缓存,以后再加载就直接读取缓存结果。要想让模块再次运行,必须清除缓存。
●模块加载的顺序,按照其在代码中出现的顺序。
六.CommonJS基本语法
暴露模块:
●module.exports = value
●exports.xxx = value
●引入模块:
●require( xxx),如果是第三方模块, xxx为模块名
●如果是自定义模块,xxx为模块文件路径
●CommonJS规范规定:每个模块内部,module变量代表当前模块,它的exports属性(即module. exports)是对外的接口
●加载某个模块,就是加载该模块的module. exports属性

一.JavaScript基础复习
基于上学期我们已经学过JavaScript,第一堂课老师给我们进行了基础复习。
1)JavaScript组成
1.ECMAScript: JavaScript的核心,定义了JavaScript的语法规范
2.BOM:浏览器对象模型,操作浏览器功能的API集合,通过BOM可以操作浏览器窗口,比如:弹出框、控制浏览器跳转、获取 分辨率等
3.DOM:文档对象模型,操作页面元素的API集合, DOM把HTML看做是文档树,通过DOM提供的API可以对树上的节点进行 操作
2)数组
3)函数
所有的函数都是Function的实例对象
函数的定义方式
函数的声明方式:function关键字(命名函数)
函数表达式(匿名函数)
new Function():执行效率低,使用较少
4)作用域链
案例如下:
5)预解析过程
1.把变量的声明提升到当前作用域的前面,只会提升声明,不会提升赋值。
2.把函数的声明提升到当前作用域的前面,只会提升声明,不会提升调用
3.先提升var,再提升function
6)this详解
函数在定义的时候this是不确定的,只有在调用的时候才可以确定。
一般函数直接执行,内部thi s指向全局window。
函数作为一一个对象的方法,被该对象所调用,那么thi s指向的是该对象
构造函数中的this是一个隐式对象,类似一个初始化的模型,所有方法和属性都挂载到这个隐式对象上,后续通过new关键字调用,从而实现实例化。

你可能感兴趣的:(JavaScript和ES6知识点整理)