分享一个最近github上比较热门的javaScript-questions
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
,此时data
为getData
方法返回的一个挂起的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()
中回调方法返回的结果
第二个.then
中res
的值等于前一个.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]]
andundefined
- 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
,我们将所有剩余参数放在一个数组中。 在这种情况下,其余的参数是2
,3
和4
。 y
的值是一个数组,包含所有其余参数。 在这种情况下,x
的值等于1
,所以当我们打印[x,y]
时,会打印[1,[2,3,4]]
。
getUser
函数接收一个对象。对于箭头函数,如果只返回一个值,我们不必编写花括号。但是,如果您想从一个箭头函数返回一个对象,您必须在圆括号之间编写它,否则不会返回任何值!下面的函数将返回一个对象:
const getUser = user => ({ name: user.name, age: user.age })
由于在这种情况下不返回任何值,因此该函数返回undefined
。
分享一个最近github上比较热门的javaScript-questions相关推荐
- 3月份GitHub上最热门的JavaScript开源项目(下)
开源最前线(ID:OpenSourceTop) 猿妹整编 转载请注明来源作者 3月份GitHub上最热门的JavaScript开源项目新鲜出炉,web界面的JavaScript库Vue强势霸榜,Moz ...
- github流程图_10月份Github上最热门的JavaScript开源项目
开源最前线(ID:OpenSourceTop) 猿妹整编 转载请注明来源作者 10 月份 GitHub 上最热门的JavaScript开源项目排行已经出炉啦,在本月的名单中,有开源书籍.有开源课程等, ...
- react 开源项目_2020年2月Github上最热门的JavaScript开源项目
来自:开源最前线(ID:OpenSourceTop) 2月份GitHub上最热门的JavaScript开源项目排行已经出炉啦,一起来看看上榜详情: 1joplin https://github.co ...
- 2020年2月Github上最热门的开源项目
关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 来自:开源最前线(ID:OpenSourceTop) 2月份GitHub上最热门 ...
- vue github开源项目_11月份Github上最热门的开源项目
开源最前线(ID:OpenSourceTop) 猿妹整编 转载请注明来源作者 11 月份 GitHub 上最热门的开源项目排行已经出炉啦,在本月的名单中,有15亿参数量的通用语言模型.还有NLP工具包 ...
- 案例 github_2019年12月Github上最热门的Java开源项目,速来围观!
转眼之间,已经进入了2020年,2019年发生的一切仿佛就在昨天.那么,刚过去不久的12月份GitHub上最热门的Java开源项目排行已经出炉啦.下面我带大家一起来看看上榜详情: 1.Alink ht ...
- 2019年1月份GitHub上最热门的Java开源项目
相信大多数程序猿们都回归工作岗位啦,不知道是否调整好心态了呢?1月份GitHub上最热门的Java开源项目新鲜出炉,还是一起来看看都有哪些项目上榜吧: 1JavaGuide https://githu ...
- 10月份Github上最热门的开源项目
Python实战社群 Java实战社群 长按识别下方二维码,按需求添加 扫码关注添加客服 进Python社群▲ 扫码关注添加客服 进Java社群▲ 开源最前线(ID:OpenSourceTop) 猿妹 ...
- 2020年7月Github上最热门的开源项目
来自:开源最前线(ID:OpenSourceTop) 7月份GitHub上最热门的开源项目排行已经出炉啦,一起来看看上榜详情吧 1 tsunami-security-scanner https://g ...
最新文章
- 优秀Java开发者的10条共性
- 学计算机须知,学习计算机须知的50个专业术语
- jquery返回顶部
- 图片自动播放和动态添加
- 手把手教出欧拉!数学界最伟大的老师惨遭全网歪曲抹黑,奇葩说陈铭一句话揭露真相.........
- Java中的LinkedHashMap
- et超排真正免狗能用版 真正好用的东西_真正合格小户型,收纳都特别能“装”...
- HTML5中的webSocket、ajax、http
- 前端学习(2695):重读vue电商网站16之Upload 上传组件
- Java语言Socket接口用法详解
- java回显怎么实现_Java实现简单的server/client回显功能
- 《Total Commander:万能文件管理器》——第4.5节.其他补充
- 好奇怪呀后面加什么标点_沙发位后面是窗户有什么好的方案?
- 揭秘 IFTTT 每天处理几十亿事件数据的基础结构
- JDK、STS、SVN、Tomcat 、mysql的下载安装及环境变量的配置和sts修改字体大小
- 手把手教你搭建自己的微信公众号
- Okra框架(一) 简介
- 数学建模所需计算机知识
- Photoshop学习(十六):使用矢量蒙版
- 学习历程——词法分析器