ES6类
----------------------------------------------------------------
数据类型:
number、string、boolean、Object、undefined、function
用typeof检测出来数据类型:
symbol
new Number(12)
new String()
new Array()
symbol 使用情况一般
定义:
let syml = Symbol('aaa');
注意:
1. Symbol 不能new
2. Symbol() 返回是一个唯一值
坊间传说, 做一个key,定义一些唯一或者私有一些东
3. symbol是一个单独数据类型,就叫 symbol, 基本类型
4. 如果symbol作为key,用for in循环,出不来
json -> for in
---------------------------------------------------------------
箭头函数
() =>{}
generator函数
生成器
解决异步深度嵌套的问题, async
语法:
function * show(){
yield
}
function* show(){
}
function *show(){
}
定义:
function * gen(){
yield 'welcome';
yield 'to';
return '牧码人';
}
调用:
let g1 = gen();
g1.next(); // {value:'welcome', done:false}
g1.next(); // {value:'to', done:false}
g1.next(); // {value:'牧码人', done:true}
上述调用,手动调用,麻烦
for .. of 自动遍历 generator
return的东西,它不会遍历
generator不仅可以配合 for ... of ...
还可以:
1. 解构赋值:
let [a, ...b] = gen();
2. 扩展运算符
'...'
console.log(...gen());
3. Array.from()
console.log(Array.from(gen()));
generator结合 axios数据请求:
-----------------------------------------------
异步: 不连续,上一个操作没有执行完,下一个操作照样开始
同步: 连续执行,上一个操作没有执行完,下一个没法开始
关于异步,解决方案:
a). 回调函数
b). 事件监听
c). 发布/订阅
d). Promise对象
co....
-----------------------------------------------
// let syml = Symbol('aaa');
// console.log(syml)
// let syml = new Symbol('aaa');
// console.log(syml)//报错
// let symbol = Symbol('liu');
// let json = {
// a: 'apple',
// b: 'banana',
// [symbol]: 'orange',
// }
// console.log(symbol)//Symbol(liu)
// console.log(typeof symbol)//symbol
// console.log(json[symbol])//orange
// for (let key in json) {
// console.log(key)//a b
// }
// function* gen() {
// yield 'hello';
// yield 'world';
// return '牧马人'
// }
// let g1 = gen();
// console.log(g1)//gen {<suspended>}
// console.log(g1.next())//value: "hello", done: false}
// console.log(g1.next())//{value: "world", done: false}
// console.log(g1.next())//value: "牧马人", done: true}
// console.log(g1.next())//value: undefined, done: true}
// for (let val of g1) {
// console.log(val)
// }
// let [a, b, c] = gen()
// console.log(a, b, c)//hello world undefined
// let [a, ...b] = gen()
// console.log(a, b)//hello ["world"]
// console.log(...gen())//hello world
// console.log(Array.from(gen()))// ["hello", "world"]
function* gen() {
let val = yield 'itstrive'
yield axios.get(`https://api.github.com/users/${val}`)
}
let g1 = gen()
let username = g1.next().value
console.log(g1.next(username).value)
console.log(username)
g1.next(username).value.then(res => {
console.log(res.data)
})
网友评论