开发者社区> 答案命运> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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)

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

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

欢迎大家指正批评


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
155个JavaScript基础问题(96-105)
155个JavaScript基础问题(96-105)
80 0
155个JavaScript基础问题(146-155)
155个JavaScript基础问题(146-155)
53 0
155个JavaScript基础问题(126-135)
155个JavaScript基础问题(126-135)
40 0
155个JavaScript基础问题(116-125)
155个JavaScript基础问题(116-125)
51 0
155个JavaScript基础问题(106-115)
155个JavaScript基础问题(106-115)
35 0
155个JavaScript基础问题(1-5)
155个JavaScript基础问题(1-5)
68 0
155个JavaScript基础问题(6-10)
155个JavaScript基础问题(6-10)
48 0
155个JavaScript基础问题(21-25)
155个JavaScript基础问题(21-25)
61 0
155个JavaScript基础问题(26-30)
155个JavaScript基础问题(26-30)
68 0
155个JavaScript基础问题(86-95)
155个JavaScript基础问题(86-95)
39 0
+关注
答案命运
人有多自律,就有多自由!
602
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载