1. ES6에 추가된 문법 2. var, const, let의 차이점 3. null, undefined? 4. NaN? 5. JS에서 세미콜론이 옵션인 이유에 대해 설명해주세요. 6. Symbol에 대해 설명해주세요. 7. == 과 === 의 차이가 무엇인가요? 8. for … of / for … in 문 9. reduce 사용법 10. splice, slice 차이 11. 옵셔널 체이닝 12. NULL 병합 연산자(??)는 무엇인가요? 13. 단축평가 14. Promise 14-1. Promise란 무엇이며, async/await과 어떻게 다른지, 왜 async/await이 등장했는지? 14-2. Promise나 async/await를 es5로 트랜스파일하면 어떻게 되나요? 15. 클로저(Closure)란 무엇인가요? 16. 구조 분해 할당(Destructuring assignment)이란? 17. 전개 구문(Spread syntax)이란? 18. 나머지 매개변수(Rest parameters)란? 19. use strict가 무엇인가요? 장단점을 설명해주세요. 20. apply, call, bind의 차이는 무엇인가요? 20-1. bind를 apply, call로 어떻게 구현할 수 있을까요? 구현해보세요.