es6:阮一峰教程学习

论坛 期权论坛 脚本     
匿名技术用户   2020-12-29 14:55   11   0

全局作用域 函数作用域 块级作用域


一:块级作用域

1.外层作用域无法读取内层作用域的变量

2.let const声明的变量只能先声明,后使用。 let const都是块级作用域!

 const声明的变量必须赋初始值且不可变,像final! 不可变是指引用不可变,也就是内存中的那片地址。

Object.freeze(要冻结对象) 引用指向的对象不可变哦! const声明引用不可变!

3.es6六种声明变量的方法:var function let const import class

4.模块化编程:封装的思想哦!  作用域

5.顶层对象 全局对象

二:变量的解构赋值

1.数组

赋值的时候,进行模式匹配!   就是按照模式匹配的方式来赋值!(解构)

模式不匹配:解构失败

只要某种数据结构是可遍历的,那么就可以进行解构赋值。


2.对象

解构赋值:模式匹配的时候按照key、value匹配。不同于数组是按照索引。


3.字符串

三:

五:数组扩展

1.Array.from()方法用于将两类对象转为真正的数组: 类似数组的对象(array-like object)和可遍历(iterable)的对象(包括ES6新增的数据结构Set和Map)。

2.Array.of()方法用于将一组值,转换为数组。

3.Array.copyWithin() 在当前数组内部,将指定位置的成员复制到其他位置(会覆盖原有成员),然后返回当前数组。也就是说,使用这个方法,会修改当前数组。

4.数组实例的find( function(value,index,arr)) 方法: 和filter很像哦!

数组实例的findIndex()方法的用法与find方法非常类似,返回第一个符合条件的数组成员的位置,如果所有成员都不符合条件,则返回-1

5.数组实例的fill()方法,使用给定的值填充数组。

6.数组实例的遍历:keys() 键名的遍历

values() 键值得遍历

entries() 键值对的遍历

六:对象的扩展

1.es6变量和方法的简写

2.Object.is() “===”的改进版 一是+0不等于-0,二是NaN等于自身。

3.Object.assign方法用于对象的合并,将源对象(source)的所有可枚举属性,复制到目标对象(target)。

同名属性会覆盖,后面的覆盖前面的。

4.Object.assign拷贝的属性是有限制的,只拷贝源对象的自身属性(不拷贝继承属性),也不拷贝不可枚举的属性enumerable: false)。  ??????

 有一些函数库提供Object.assign的定制版本(比如Lodash的_.defaultsDeep方法),可以解决浅拷贝的问题,得到深拷贝的合并。

七:Symbol  JavaScript的第七种数据类型.

Number String Object Boolean Undefined Null

八:Set和Map数据结构

1.Set不会添加重复的值!  

2.WeakSet: 首先,WeakSet 的成员只能是对象,而不能是其他类型的值。

其次,弱引用,引用存在也会被GC机制回收。

3.Map: 本质上是键值对的集合(Hash 结构),但是传统上只能用字符串当作键。这给它的使用带来了很大的限制。 

 WeakMap: 首先,WeakMap只接受对象作为键名(null除外),不接受其他类型的值作为键名。

九:Iterator 和 for...of 循环

1.Javascript表示集合的数据结构:  数组  对象  Map Set

遍历器(Iterator)就是这样一种机制。它是一种接口,为各种不同的数据结构提供统一的访问机制。

十:Promise对象

1.有了Promise对象,就可以将异步操作以同步操作的流程表达出来,避免层层嵌套的回调函数。

2.Promise对象,容器,里面保存着某个未来才会结束的事件的结果。

3.Promise对象代表一个异步操作,三种状态:Pending、Resolved、Rejected。  一个异步操作是一个对象。

异步操作的结果才可以更改状态。

状态一旦改变就会凝固。

4.then()方法:它的作用是为 Promise 实例添加状态改变时的回调函数。前面说过,then方法的第一个参数是Resolved状态的回调函数,第二个参数(可选)是Rejected状态的回调函数。

pending-》resolved pending-》rejected:状态改变执行回调! 

5.jQuery的所有Ajax操作函数,默认返回的就是一个deferred对象。

6.Promise.resolve() 有时需要将现有对象转为Promise对象,Promise.resolve方法就起到这个作用。

十一:Class

1.类的数据类型是函数,且类本身指向构造函数

2.由于类的方法都定义在prototype对象上面

3.表达式就是变量? 就是一个赋值表达式?

4.constructor:类的构造函数,constructor方法默认返回实例对象(即this),完全可以指定返回另外一个对象。

十二:Reflect对象

1.Reflect对象与Proxy对象一样,也是 ES6 为了操作对象而提供的新 API。

2.函数式行为! 语言的一种完善!

十三:Proxy对象

1.对象的拦截器 访问对象时候的代理。

ES6 知识点总览:

let/const 变量的解构赋值 字符串扩展 正则扩展 数值扩展 函数扩展 数组扩展 对象扩展 Symbol Set和Map数据结构 Promise对象 Class

模块加载方案 Proxy Reflect

发现的问题

1.可遍历解构? Iterator

2.重载和覆盖? 好久没看都忘记了啊! 

3.深拷贝和浅拷贝?  


转载于:https://www.cnblogs.com/njqa/p/7149136.html

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP