D4【问答格式】【精简版】每日一练前端

81 阅读1分钟

Q1. ES6和ES5在代码的模块化上有什么区别?

  • ES6引入了ES6模块化,使用importexport关键字来导入和导出模块, 通常不再需要手动创建命名空间。
  • 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) // myHyphenatedString