github:https://github.com/lydiahallie/javascript-questions

是一些从基础到进阶的JS题目,也包括一些ES6的题目。这里面也有中文翻译的版本哟!


翻看了两遍question,现在对一些题目做笔记记录一下。

54题:以下代码输出什么?

(() => {let x = (y = 10);
})();console.log(typeof x);
console.log(typeof y);

分析:这里的let x=(y=10);

等价于 y=10;let  x=y; 因此y是全局变量。在全局作用里访问不到函数里的变量。未分配或是未声明的变量类型为"undefined"

因此,typeof x  ;// undefined    typeof y; //number


65题:输出什么?

[1, 2, 3, 4].reduce((x, y) => console.log(x, y));

分析:考察数组的reduce方法。

reduce()语法:array.reduce(function(total, currentValue, currentIndex, arr), initialValue)

function里的参数:

  • total  必需。初始值,或者计算结束后的返回值。
  • currentValue 必需。当前元素
  • currentIndex 可选。当前元素的索引
  • arr 可选。当前元素所属的数组对象

题目中的function是ES6中的箭头函数,函数体只有打印total及currentValue,没有写return语句,因此默认返回undefined。

因此答案结果为:1 2 and undefined 3 and undefined 4


68题:输出什么?

console.log(Number(2) === Number(2))
console.log(Boolean(false) === Boolean(false))
console.log(Symbol('foo') === Symbol('foo'))

答案: true true false

每个Symbol都是完全唯一的。传递给Symbol的参数只是给Symbol的一个描述。 Symbol的值不依赖于传递的参数


73题: 输出什么?

async function getData() {return await Promise.resolve("I made it!");
}const data = getData();
console.log(data);
  • A: "I made it!"
  • B: Promise {<resolved>: "I made it!"}
  • C: Promise {<pending>}
  • D: undefined

答案:C

异步函数始终返回一个promise。await仍然需要等待promise的解决:当我们调用getData()并将其赋值给data,此时datagetData方法返回的一个挂起的promise,该promise并没有解决。

如果我们想要访问已解决的值"I made it!",可以在data上使用.then()方法:

data.then(res => console.log(res))

这样将打印 "I made it!"


85题: 什么样的信息将被打印?

fetch('https://www.website.com/api/user/1').then(res => res.json()).then(res => console.log(res))

答案: 前一个.then()中回调方法返回的结果

第二个.thenres的值等于前一个.then中的回调函数返回的值。 你可以像这样继续链接.then,将值传递给下一个处理程序。


86题: 哪个选项是将hasName设置为true的方法,前提是不能将true作为参数传递?

function getName(name) {const hasName = //
}
  • A: !!name
  • B: name
  • C: new Boolean(name)
  • D: name.length

答案:A

使用逻辑非运算符!,将返回一个布尔值,使用!! name,我们可以确定name的值是真的还是假的。 如果name是真实的,那么!name返回false。 !false返回true

通过将hasName设置为name,可以将hasName设置为等于传递给getName函数的值,而不是布尔值true

new Boolean(true)返回一个对象包装器,而不是布尔值本身。

name.length返回传递的参数的长度,而不是布尔值true


98题:输出什么?

const getList = ([x, ...y]) => [x, y]
const getUser = user => { name: user.name, age: user.age }const list = [1, 2, 3, 4]
const user = { name: "Lydia", age: 21 }console.log(getList(list))
console.log(getUser(user))
  • A: [1, [2, 3, 4]] and undefined
  • B: [1, [2, 3, 4]] and { name: "Lydia", age: 21 }
  • C: [1, 2, 3, 4] and { name: "Lydia", age: 21 }
  • D: Error and { name: "Lydia", age: 21 }

​​​​​​​答案: A

getList函数接收一个数组作为其参数。 在getList函数的括号之间,我们立即解构这个数组。 您可以将其视为:

[x, ...y] = [1, 2, 3, 4]

使用剩余的参数... y,我们将所有剩余参数放在一个数组中。 在这种情况下,其余的参数是234。 y的值是一个数组,包含所有其余参数。 在这种情况下,x的值等于1,所以当我们打印[x,y]时,会打印[1,[2,3,4]]

getUser函数接收一个对象。对于箭头函数,如果只返回一个值,我们不必编写花括号。但是,如果您想从一个箭头函数返回一个对象,您必须在圆括号之间编写它,否则不会返回任何值!下面的函数将返回一个对象:

const getUser = user => ({ name: user.name, age: user.age })

由于在这种情况下不返回任何值,因此该函数返回undefined

分享一个最近github上比较热门的javaScript-questions相关推荐

  1. 3月份GitHub上最热门的JavaScript开源项目(下)

    开源最前线(ID:OpenSourceTop) 猿妹整编 转载请注明来源作者 3月份GitHub上最热门的JavaScript开源项目新鲜出炉,web界面的JavaScript库Vue强势霸榜,Moz ...

  2. github流程图_10月份Github上最热门的JavaScript开源项目

    开源最前线(ID:OpenSourceTop) 猿妹整编 转载请注明来源作者 10 月份 GitHub 上最热门的JavaScript开源项目排行已经出炉啦,在本月的名单中,有开源书籍.有开源课程等, ...

  3. react 开源项目_2020年2月Github上最热门的JavaScript开源项目

    来自:开源最前线(ID:OpenSourceTop)  2月份GitHub上最热门的JavaScript开源项目排行已经出炉啦,一起来看看上榜详情: 1joplin https://github.co ...

  4. 2020年2月Github上最热门的开源项目

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 来自:开源最前线(ID:OpenSourceTop)  2月份GitHub上最热门 ...

  5. vue github开源项目_11月份Github上最热门的开源项目

    开源最前线(ID:OpenSourceTop) 猿妹整编 转载请注明来源作者 11 月份 GitHub 上最热门的开源项目排行已经出炉啦,在本月的名单中,有15亿参数量的通用语言模型.还有NLP工具包 ...

  6. 案例 github_2019年12月Github上最热门的Java开源项目,速来围观!

    转眼之间,已经进入了2020年,2019年发生的一切仿佛就在昨天.那么,刚过去不久的12月份GitHub上最热门的Java开源项目排行已经出炉啦.下面我带大家一起来看看上榜详情: 1.Alink ht ...

  7. 2019年1月份GitHub上最热门的Java开源项目

    相信大多数程序猿们都回归工作岗位啦,不知道是否调整好心态了呢?1月份GitHub上最热门的Java开源项目新鲜出炉,还是一起来看看都有哪些项目上榜吧: 1JavaGuide https://githu ...

  8. 10月份Github上最热门的开源项目

    Python实战社群 Java实战社群 长按识别下方二维码,按需求添加 扫码关注添加客服 进Python社群▲ 扫码关注添加客服 进Java社群▲ 开源最前线(ID:OpenSourceTop) 猿妹 ...

  9. 2020年7月Github上最热门的开源项目

    来自:开源最前线(ID:OpenSourceTop) 7月份GitHub上最热门的开源项目排行已经出炉啦,一起来看看上榜详情吧 1 tsunami-security-scanner https://g ...

最新文章

  1. 优秀Java开发者的10条共性
  2. 学计算机须知,学习计算机须知的50个专业术语
  3. jquery返回顶部
  4. 图片自动播放和动态添加
  5. 手把手教出欧拉!数学界最伟大的老师惨遭全网歪曲抹黑,奇葩说陈铭一句话揭露真相.........
  6. Java中的LinkedHashMap
  7. et超排真正免狗能用版 真正好用的东西_真正合格小户型,收纳都特别能“装”...
  8. HTML5中的webSocket、ajax、http
  9. 前端学习(2695):重读vue电商网站16之Upload 上传组件
  10. Java语言Socket接口用法详解
  11. java回显怎么实现_Java实现简单的server/client回显功能
  12. 《Total Commander:万能文件管理器》——第4.5节.其他补充
  13. 好奇怪呀后面加什么标点_沙发位后面是窗户有什么好的方案?
  14. 揭秘 IFTTT 每天处理几十亿事件数据的基础结构
  15. JDK、STS、SVN、Tomcat 、mysql的下载安装及环境变量的配置和sts修改字体大小
  16. 手把手教你搭建自己的微信公众号
  17. Okra框架(一) 简介
  18. 数学建模所需计算机知识
  19. Photoshop学习(十六):使用矢量蒙版
  20. 学习历程——词法分析器

热门文章

  1. 北京计算机科学技术研究所,北京大学计算机科学技术研究所
  2. GG-CNN代码学习
  3. python CTP 更换前置机重连
  4. MATLAB/SAS学习笔记
  5. Go 语言 exec 实时获取外部命令的执行输出
  6. Link prediction 链路预测方法简述
  7. 世界杯梦幻阵容html代码,西班牙名帅评世界杯梦幻阵容:梅西C罗无争议
  8. 腾讯云4核8G服务器S5.LARGE8性能测评
  9. 【LeetCode - 1244】力扣排行榜
  10. 计算机毕业设计——健身房管理系统