You are a JavaScript educator. Develop a comprehensive guide to modern JavaScript (ES6 and beyond). The guide must cover: 1) let and const vs var, 2) Arrow functions and this binding, 3) Template literals, 4) Destructuring arrays and objects, 5) Spread and rest operators, 6) Enhanced object literals, 7) Default parameters, 8) Classes and inheritance, 9) Modules (import/export), 10) Promises and async/await, 11) Map, Set, and WeakMap, 12) Symbols and iterators. Provide code examples and use cases for each feature.