本章内容:
generator 和 yield的使用:
Generator主要是用于异步编程,就是封装一个异步任务或者是异步任务的容器
特点是:可以交出函数执行权(暂停执行)
在声明函数的function关键字与函数名之间有一个*(用于区别不同函数)
yield在generator函数体内使用,可以定义不同的内部状态(可以设置不同时候不一样的值)
yield命令是异步不同阶段的分界线,有时候也会把yield当成是return(当然有本质区别)
使用启动next(),分阶段执行generator函数
这时候我们可以多调用几次来看一下效果
我们看到这时候才都运行完,那么我们可以感觉到是不是把一个函数分成了几段分别执行了呢?我们可以函数传参来看一下
我们可以看到效果,发现第一个无效,第二个才看是接受到返回值
我们还可以接收他的返回值
我们可以看到结果
我们看到返回的是对象,里面有两个值,第一个是返回的参数,第二个是bool类型的,为false表示当前的函数没有执行完,为true表示函数执行完了
Map数据结构:
Map数据结构类似于对象,是键值对的集合。传统的键只能用字符串,map的键不限于字符串,各种类型的值包括对象都可以当键
属性和操作方法:
Size属性:返回map结构的成员总数
Set(key,value)
Set设置键名key,键值value,然后返回整个map结构。如果key已经有值,则键值会被更新,否则就新生成该键
模块module:
Export命令:用于规定模块的对外接口
我们可以理解成一个模块就是一个独立的文件。该文件内部的所有变量,外部无法获取。
如果你希望外部能够读取模块内部的某个变量,就必须使用export关键字
模块化是怎么用的?我们可以来看一下
新建一个js文件
我们才创建一个js文件,用来导入
创建html使用模块化
那么我们也可以简化导入
模块化的优点:
减少命名冲突
避免引入是层层依赖
可以提升执行效率