155个JavaScript基础问题(106-115)

简介: 155个JavaScript基础问题(106-115)

这是我参与更文挑战的第9天,活动详情查看:更文挑战

106. 输出什么?

const colorConfig = {
  red: true,
  blue: false,
  green: true,
  black: true,
  yellow: false,
}
const colors = ["pink", "red", "blue"]
console.log(colorConfig.colors[1])

image.png

答:D,JS通过点访问对象属性的时候,会把colors当做一个属性,发现找不到为undefined,然后调用[1]会报错。

107. 输出什么?

console.log('❤️' === '❤️')

image.png

答:A,显然这两个字面量是相等的。

108. 那些方法修改了原数组?

const emojis = ['✨', '🥑', '😍']
emojis.map(x => x + '✨')
emojis.filter(x => x !== '🥑')
emojis.find(x => x !== '🥑')
emojis.reduce((acc, cur) => acc + '✨')
emojis.slice(1, 2, '✨') 
emojis.splice(1, 2, '✨')

image.png

答:map,filter,slice返回的是新数组,find返回的是数组中的某个元素,reduce返回的是一个值,只有splice是对原数组产生了更改。

109. 输出什么?

const food = ['🍕', '🍫', '🥑', '🍔']
const info = { favoriteFood: food[0] }
info.favoriteFood = '🍝'
console.log(food)


image.png

答:A,上述代码只是修改了info中的值,并未对food对象产生任何影响。

110. 下面的函数干了什么?

JSON.parse()

image.png

答:A,这个题就看我们对JS中常用API的了解程度了,就是将JSON字符串转换为对应的JavaScript值。

111. 输出什么?

let name = 'Lydia'
function getName() {
  console.log(name)
  let name = 'Sarah'
}
getName()

image.png

答:D,本题中let存在变量声明的提升,但是并未进行初始化,此时存在暂时性死区,在暂时性死区中调用let定义的变量会报错,所以选D。

112. 输出什么?

function* generatorOne() {
  yield ['a', 'b', 'c'];
}
function* generatorTwo() {
  yield* ['a', 'b', 'c'];
}
const one = generatorOne()
const two = generatorTwo()
console.log(one.next().value)
console.log(two.next().value)

image.png

答:C,本题中的两个函数猛一看没区别,实际上第二个函数多了一个*号,所以调用第二个函数的next().value返回的其实是一个元素,所以本题选C。

113. 输出什么?

console.log(`${(x => x)('I love')} to program`)

image.png

答:A,本题的模板字符串大括号中是一个立即执行函数,所以打印的结果是A。

114. 下面的函数将会发生什么?

let config = {
  alert: setInterval(() => {
    console.log('Alert!')
  }, 1000)
}
config = null

image.png

答:C,这是因为循环定时器中的参数是一个箭头函数,箭头函数中的上下文绑定到config了,通过赋值为null,回调函数仍然保留着对config的引用,所以循环定时器不会停止,仍然是每隔1秒继续打印,可以通过clear的方式取消掉这个循环定时器。

115. 下面哪一个方法会返回'Hello World!'?

const myMap = new Map()
const myFunc = () => 'greeting'
myMap.set(myFunc, 'Hello world!')
//1
myMap.get('greeting')
//2
myMap.get(myFunc)
//3
myMap.get(() => 'greeting')


image.png

答:B,首先我们要明确一点,Map中值为Hello world!的键是myFunc的地址引用,1,2,3中只有第二个键是myFunc的地址引用,3是一个新地址,所以选B。

题目来源

Github.com/lydiahallie…

相关文章
|
JavaScript
JS基础之解构赋值
解构赋值 在js中,我们经常会将对象或者数组里面的一部分数据作为参数传递给函数,如果我们使用传统的.方法会很麻烦。
|
移动开发 JavaScript 前端开发
JavaScript基础知识梳理-上
对JavaScript基础知识梳理-上
237 31
JavaScript基础知识梳理-上
|
存储 JavaScript 前端开发
JavaScript基础(一篇入门)
JavaScript基础(一篇入门)
225 0
JavaScript基础(一篇入门)
|
JavaScript 前端开发
2021琴理工作室JS基础教学(三)
当网页被加载的时候,浏览器就会创建文档对象模型,也就是dom 而dom可以看做一颗树
84 3
2021琴理工作室JS基础教学(三)
|
JavaScript 前端开发
JavaScript 入门基础 - 运算符(三)
文章目录 JavaScript 入门基础 - 运算符(三) 1.什么是运算符 2.表达式和返回值 3.算术运算符概述 4. 赋值运算符 5.递增和递减运算符 5.1 递增和递减运算符概述 5.2 递增运算符 5.2.1 前置递增运算符 5.2.2 后置递增运算符 5.2.3 后置和前置运算符的区别 6. 比较运算符 7. 逻辑运算符 7.1 逻辑运算符概述 7.2 逻辑与 7.3 逻辑或 7.4
159 0
JavaScript 入门基础 - 运算符(三)
|
存储 JSON JavaScript
JavaScript 入门基础 - 变量 / 数据类型(二)
JavaScript 入门基础 - 变量 / 数据类型(二)
110 0
JavaScript 入门基础 - 变量 / 数据类型(二)
|
JavaScript 前端开发 物联网
JavaScript 入门基础 / 概念介绍(一)
JavaScript 入门基础 / 概念介绍(一)
145 0
JavaScript 入门基础 / 概念介绍(一)
|
JavaScript 前端开发 Java
JavaScript的基础使用
JavaScript的基础 一、javascript简介 JavaScript简称js,最初由网景(现在的Mozilla)公司创建,由于商标冲突原因,其标准版本命名为ECMAScript,但是一般人们还是叫JavaScript,只在谈标准的时候说到ECMAScript这个名字。值得注意的是JavaScript与java没有任何关系,就像雷峰塔(神话中镇压白娘子的塔)和雷锋。此外js(JavaScript)和jsp(java servlet pages)也没有关系。   js的工作分为两部分,一部分属于js语言本身的特性,而另一部需要依靠宿主环境(web浏览器)才能完成。 二、javascri
JavaScript的基础使用
|
JavaScript 前端开发
vue js文字跑马灯基础版本
提供两种解决思路
293 1
|
JavaScript 前端开发
原生js制作选项卡详解,适合无基础的人学习
原生js制作选项卡详解,适合无基础的人学习
144 0
原生js制作选项卡详解,适合无基础的人学习