Q1. ES6和ES5在代码的模块化上有什么区别?
- ES6引入了ES6模块化,使用
import和export关键字来导入和导出模块, 通常不再需要手动创建命名空间。
- ES5的话一般是使用非标准的模块加载方案,比如CommonJS, AMD, CMD来实现模块化,然后也有使用对象作为命名空间,模拟简单的模块化
Q2. 为什么要用Promise?
- Promise可以改善回调地狱,更方便的书写复杂的异步任务。如果需要多个异步任务并行执行时,用
Promise.all()也很方便。
Q3. 是否会有Promise地狱?
- 会的,为了避免Promise地狱,我们可以用
async/await语法
Q4. 手撕:把连字符"-"命名法转为驼峰命名法
const hyphenString = 'my-hyphenated-string'
const camelCaseString = hyphenString.replace(/-([a-z])/g, function(match, group1) {
return group1.toUpperCase()
})
console.log(camelCaseString)