ES6 新特性

2023-01-10  本文已影响0人  张_何

let 和 const

const arr = [];
for (var i= 0; i < 10; i++) {
  arr[i]=function(){
    return i;
  }
}
console.log(arr[5]()); // 10, 这里是因为var 定义的i会提升到for循环外,当for循环执行完后 i 就变成了10; 如果使用let 定义就不会提升到for循环外,输出的结果就是5
const name = Symbol('name');
const name1 = Symbol('name');
console.log(name===name2); // false
function* func(){
  console.log('one');
  yield 2;
  console.log('two');
  yield 3;
  console.log('end');
}
let fn = func();
console.log(fn.next()); // one, {value: 2,done:false} , 挂起在yield 2的位置,并将2作为value返回
console.log(fn.next()); // two, {value: 3,done:false} , 挂起在yield 3的位置,并将3作
console.log(fn.next());// three,{value:undefine, done:true} 
上一篇下一篇

猜你喜欢

热点阅读