JSFiddle - React, Tailwind, and code Playground

발표

by uiwwnw

HTML

<script>
  var a = 0;

</script>

JavaScript

// for of
// regacy

/* 
var list1 = [1, 2, 3];
for (var i = 0; i < list1.length; i++) console.log(list1[i]);

// es6
const list2 = new Array(1, 2, 3);
for (const i of list2) {
  console.log(i)
};
const set = new Set([1, 2, 3]);
const map = new Map([
  [1, 3],
  [2, 4],
  [43, 2]
]);

console.log('set');
for (const i of set) {
  console.log(i)
}
const iter = list1[Symbol.iterator]();
*/










// for of 는 어레이기 때문에 작동하는게 아니라
// 어레이가 이터러블이기 떄문에 작동한다.
// for of는 이터러블을 순회한다. 


// 이터레이터/ 이터러블 프로토콜

//이터러블이란
// [Symbol.interator]를 갖는다
// 매소드 실행 시 이터레이터를 반환한다.

// 이터레이터란
// 넥스트 매소드를 소유하며
// 실행시 value done을 리턴한다.

// 웰폼드(well-formed) 이터러블이란
// 이터레이터 실행 시 자기자신을 리턴한다.

/* const list = [1, 2, 3];
const iter1 = () => {
  let i = 0;
  return {
    next() {
      i++;
      return i > 5 ? {
        done: true
      } : {
        done: false,
        value: i
      }
    },
    [Symbol.iterator]() {
      return this;
    }
  }
}
const eeee = list[Symbol.iterator]();
const eeeee = iter1();

console.log(eeeee.next(), '포문 밖')
for(const e of eeeee) {
  console.log(e, '포문 안');
}
console.log(eeeee.next());
console.log(eeeee.next());
console.log(eeeee.next());
console.log(eeeee.next());
console.log(eeeee.next());
console.log(eeeee.next()); */




/* const iterable1 = {
    [Symbol.iterator]() {
      let i = 0;
      return {
        next() {
          return i > 3 ? {
            done: true
          } : {
            done: false,
            value: i++
          };
        },
        [Symbol.iterator]() {
          return this;
        }
      }
    }
}
const iter1 = iterable1()[Symbol.iterator](); */
/* console.log(iter1.next());
console.log(iter1.next());
for(const b of iter1) {
console.log(b)
}
console.log(iter1.next());
console.log(iter1.next()); 

console.log(a)
  */

let i = -1;
let lll = [];
while (++i < 5) {
	lll.push(i)
  console.log('while')
}
for(const a of lll) {
	console.log(a, 'while')
}

const gen = function*() {
  let i = -1;
  while (++i < 5) {
 ...