155个JavaScript基础问题(96-105)

简介: 155个JavaScript基础问题(96-105)

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

96. 输出什么?

class Person {
  constructor() {
    this.name = "Lydia"
  }
}
Person = class AnotherPerson {
  constructor() {
    this.name = "Sarah"
  }
}
const member = new Person()
console.log(member.name)

image.png

答:B,这题可以理解为Person中存放了新的地址,Person也指向了新的类,所以其实例也是新的类的实例对象,所以打印出的是B。

97. 输出什么?

const info = {
  [Symbol('a')]: 'b'
}
console.log(info)
console.log(Object.keys(info))

image.png

答:D,本题意在考查我们对Symbol的理解,Symbol是不可枚举的,但是通过访问整个对象可以看到,所以答案选D。

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))

image.png

答:A,本题意在考查数组的解构赋值和箭头函数如何返回一个对象,我们要切记箭头函数在简写的情形下,要想返回一个对象,需要用小括号包着,否则会报错,但是题目中选的是undefined,其次数组的解构赋值中拓展运算符后面存放的是一个剩余数组,所以选A。

99. 输出什么?

答:C,本题中JS会将name当作函数运行,所以会出现类型错误。

100. 输出什么?

image.png

101. 输出什么?

const one = (false || {} || null)
const two = (null || false || "")
const three = ([] || 0 || true)
console.log(one, two, three)

image.png

答:C,空对象属于真值,null属于假值,[]属于真值,所以本题选C。

102. 依次输出什么?

const myPromise = () => Promise.resolve('I have resolved!')
function firstFunction() {
  myPromise().then(res => console.log(res))
  console.log('second')
}
async function secondFunction() {
  console.log(await myPromise())
  console.log('second')
}
firstFunction()
secondFunction()

image.png

答:D,本题主要考查事件循环机制和.then和await的区别,在第一个函数中,同步代码是要优先于微任务的执行的,在第二个函数中,await会由暂停机制,等接收到成功的Promise对象后,才继续执行后续代码,所以有一种看起来是同步代码的感觉,所以本题选D。

103. 输出什么?

const set = new Set()
set.add(1)
set.add("Lydia")
set.add({ name: "Lydia" })
for (let item of set) {
  console.log(item + 2)
}

image.png

答:C,本题意在考查不同类型的值通过+号后的变化,数值型的则是直接相加,字符串的则是拼接,对象形式的,则是C项的第三个那样进行拼接。

104. 结果是什么?

Promise.resolve(5)

image.png

105. 输出什么?

function compareMembers(person1, person2 = person) {
  if (person1 !== person2) {
    console.log("Not the same!")
  } else {
    console.log("They are the same!")
  }
}
const person = { name: "Lydia" }
compareMembers(person)

image.png

答:B,本题函数中的两个参数实际上都是Person的引用,所以答案选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制作选项卡详解,适合无基础的人学习