设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 创业者 数据 手机
当前位置: 首页 > 运营中心 > 建站资源 > 优化 > 正文

7 个常见的 JavaScript 测验及解答(3)

发布时间:2019-11-01 17:15 所属栏目:21 来源:疯狂的技术宅
导读:上面的语法功能强大,使我们能够轻松地将任何对象分成两个更具体的对象,上面的示例在控制台的输出为: //{name:John,surname:Doe} //{email:john@doe.com,displayName:SuperCoolJohn,joined:2016-05-05,image:path

上面的语法功能强大,使我们能够轻松地将任何对象分成两个更具体的对象,上面的示例在控制台的输出为:

  1. // {name: "John", surname: "Doe"} 
  2. // {email: "john@doe.com", displayName: "SuperCoolJohn", joined: "2016-05-05", image: "path-to-the-image", followers: 45} 

6.异步/等待

调用以下函数后将输出什么?

  1. (async () => { 
  2.   let result = 'Some Data'; 
  3.  
  4.   let promise = new Promise((resolve, reject) => { 
  5.     setTimeout(() => resolve('Some data retrieved from the server'), 2000); 
  6.   }); 
  7.  
  8.   result = await promise; 
  9.   console.log(result); 
  10. })(); 

说明

如果你认为是两秒钟后输出 Some data retrieved from the server ,那么你是对的!

代码将会暂停,直到 promise 得到解决。两秒钟后,它将继续执行并输出给定的文本。这意味着 JavaScript 引擎实际上会等到异步操作完成。可以说 async/await 是用来获得 promise 结果的语法糖。也有人认为它是比 promise.then 更具可读性的方式。

7. Return 语句

  1. const multiplyByTwo = (x) => { 
  2.     return 
  3.     { 
  4.         result: x * 2 
  5.     }; 
  6. console.log(multiplyByTwo(2));   

说明

如果你的答案是 {result: 4},那你就错了。输出是 undefined。但是不要对自己太苛刻,考虑到我也写 C# 代码,这也曾经困扰着我,这在 C# 那儿不是个问题。

由于自动分号插入的原因,上面的代码将返回 undefined。 return 关键字和表达式之间不允许使用行结束符

解决方案是用以下列方式之一去修复这个函数:

  1. const multiplyByTwo = (x) => { 
  2.     return { 
  3.         result: x * 2 
  4.     }; 

要么

  1. const multiplyByTwo = (x) => { 
  2.   return ( 
  3.     { 
  4.       result: x * 2 
  5.     } 
  6.   ); 

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读