155个JavaScript基础问题(11-20)

简介: 155个JavaScript基础问题(11-20)

11. 输出是什么?

function Person(firstName, lastName) {
  this.firstName = firstName;
  this.lastName = lastName;
}
const member = new Person("Lydia", "Hallie");
Person.getFullName = function () {
  return `${this.firstName} ${this.lastName}`;
}
console.log(member.getFullName());

image.png

答:A,本题中Person是一个构造函数,不能像普通的对象给构造函数添加属性,要想给构造函数的实例添加属性,可以通过原型的方式来实现。

12. 输出是什么?

function Person(firstName, lastName) {
  this.firstName = firstName
  this.lastName = lastName
}
const lydia = new Person('Lydia', 'Hallie')
const sarah = Person('Sarah', 'Smith')
console.log(lydia)
console.log(sarah)

image.png

答:A,关于Lydia的选项一般不易选错,因为通过new关键词,this会引用我们创建的空对象,但是sarah没有使用new关键词,所以,此时的this是指向global的,而sarah本身是undefined.

13. 事件捕获的三个阶段是哪些?

image.png

答:选D、DOM事件流的三个阶段分别是事件捕获阶段、处于目标阶段、事件冒泡阶段。事件捕获的三个阶段图示:

image.png

14. 所有的对象都有原型?

image.png

答:错。这句话是不够准确的,准确的说应该是除去Object之外的所有对象都有原型。

15. 输出是什么?

function sum(a, b) {
  return a + b
}
sum(1, '2')

image.png

答:C,因为JS将字符串2和数字1相加时,会进行类型转换,将1转换为字符串类型的,然后就相当于一种字符串拼接。

16. 输出是什么?

let number = 0
console.log(number++)
console.log(++number)
console.log(number)

image.png

答:C,number++是先输出值,再进行加,但是++number则是先加,再进行输出。

17. 输出是什么?

function getPersonInfo(one, two, three) {
  console.log(one)
  console.log(two)
  console.log(three)
}
const person = 'Lydia'
const age = 21
getPersonInfo`${person} is ${age} years old`


image.png

答:B,我刚开始看到这道题的时候,我在想getPersonInfo是不是少加一个括号,后来我发现并不是这样,本题意在考查标签函数。所谓的标签函数就是函数名后面直接带一个模板字符串,并从模板字符串中的插值表达式中获取参数。标签表达式的第一个参数是模板字符串中的普通文本,大括号标记的地方视为空字符串,第二个参数则是模板字符第一个大括号中的,以此类推。

18. 输出是什么?

function checkAge(data) {
  if (data === { age: 18 }) {
    console.log('You are an adult!')
  } else if (data == { age: 18 }) {
    console.log('You are still an adult.')
  } else {
    console.log(`Hmm.. You don't have an age I guess`)
  }
}
checkAge({ age: 18 })

image.png

答:C,对象在进行比较时,比较的是引用的内存地址,此处参数形式的对象的地址和用于比较的对象的地址是不同的,所以=== 和 == 返回的都是false,所以最后答案选C。

19. 输出是什么?

function getAge(...args) {
  console.log(typeof args)
}
getAge(21)

image.png

答:C、拓展运算符返回的是实参数组,数组属于object类型。

20. 输出是什么?

function getAge() {
  'use strict'
  age = 21
  console.log(age)
}
getAge()

image.png

答:C、因为这是严格模式,所以会出现引用错误,如果不是严格模式的话,age属性会被添加到全局对象中去。

参考文献

题目来源

JavaScript事件捕获和事件冒泡

ES6 - 标签函数

其余题目链接

155个JavaScript基础问题(1-5)

155个JavaScript基础问题(6-10)

为什么不一次性放完所有题目?

博主认为学习贵在坚持,而不是三天打鱼两天晒网,学习不是收藏不看,而是每天进步一点点,大家一起加油!

欢迎大家指正批评


相关文章
|
JavaScript
JS基础之解构赋值
解构赋值 在js中,我们经常会将对象或者数组里面的一部分数据作为参数传递给函数,如果我们使用传统的.方法会很麻烦。
|
移动开发 JavaScript 前端开发
JavaScript基础知识梳理-上
对JavaScript基础知识梳理-上
224 31
JavaScript基础知识梳理-上
|
存储 JavaScript 前端开发
JavaScript基础(一篇入门)
JavaScript基础(一篇入门)
217 0
JavaScript基础(一篇入门)
|
JavaScript 前端开发
2021琴理工作室JS基础教学(三)
当网页被加载的时候,浏览器就会创建文档对象模型,也就是dom 而dom可以看做一颗树
80 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
152 0
JavaScript 入门基础 - 运算符(三)
|
存储 JSON JavaScript
JavaScript 入门基础 - 变量 / 数据类型(二)
JavaScript 入门基础 - 变量 / 数据类型(二)
107 0
JavaScript 入门基础 - 变量 / 数据类型(二)
|
JavaScript 前端开发 物联网
JavaScript 入门基础 / 概念介绍(一)
JavaScript 入门基础 / 概念介绍(一)
138 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文字跑马灯基础版本
提供两种解决思路
286 1
|
JavaScript 前端开发
原生js制作选项卡详解,适合无基础的人学习
原生js制作选项卡详解,适合无基础的人学习
138 0
原生js制作选项卡详解,适合无基础的人学习