文章目录

  • 1.下面代码的输出是什么?
  • 2. 下面代码的输出是什么?
  • 3.事件传播的三个阶段是什么??
  • 4. 下面代码的输出是什么?
  • 5. 下面代码的输出是什么?
  • 6. 下面代码的输出是什么?
  • 7. 下面代码的输出是什么?
  • 8. 下面代码的输出是什么?
  • 9.下面代码的输出是什么?
  • 10.下面代码的输出是什么?

1.下面代码的输出是什么?

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

A: TypeError
B: SyntaxError
C: Lydia Hallie
D: undefined undefined

答案: A

您不能像使用常规对象那样向构造函数添加属性。 如果要一次向所有对象添加功能,则必须使用原型。 所以在这种情况下应该这样写:

Person.prototype.getFullName = function () {return `${this.firstName} ${this.lastName}`;
}

这样会使member.getFullName()是可用的,为什么样做是对的? 假设我们将此方法添加到构造函数本身。 也许不是每个Person实例都需要这种方法。这会浪费大量内存空间,因为它们仍然具有该属性,这占用了每个实例的内存空间。 相反,如果我们只将它添加到原型中,我们只需将它放在内存中的一个位置,但它们都可以访问它!

2. 下面代码的输出是什么?

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

A: Person {firstName: “Lydia”, lastName: “Hallie”} and undefined
B: Person {firstName: “Lydia”, lastName: “Hallie”} and Person {firstName: “Sarah”, lastName: “Smith”}
C: Person {firstName: “Lydia”, lastName: “Hallie”} and {}
D:Person {firstName: “Lydia”, lastName: “Hallie”} and ReferenceError

答案: A

对于sarah,我们没有使用new关键字。 使用new时,它指的是我们创建的新空对象。 但是,如果你不添加new它指的是全局对象!

我们指定了this.firstName等于’Sarah和this.lastName等于Smith。 我们实际做的是定义global.firstName ='Sarah’和global.lastName ='Smith。 sarah本身的返回值是undefined。

3.事件传播的三个阶段是什么??

A: 目标 > 捕获 > 冒泡
B: 冒泡 > 目标 > 捕获
C: 目标 > 冒泡 > 捕获
D: 捕获 > 目标 > 冒泡

答案: D

在捕获阶段,事件通过父元素向下传递到目标元素。 然后它到达目标元素,冒泡开始。

4. 下面代码的输出是什么?

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

A: NaN
B: TypeError
C: “12”
D: 3

答案: C

JavaScript是一种动态类型语言:我们没有指定某些变量的类型。 在您不知情的情况下,值可以自动转换为另一种类型,称为隐式类型转换。 强制从一种类型转换为另一种类型。

在此示例中,JavaScript将数字1转换为字符串,以使函数有意义并返回值。 在让数字类型(1)和字符串类型(‘2’)相加时,该数字被视为字符串。 我们可以连接像“Hello”+“World”这样的字符串,所以这里发生的是“1”+“2”返回“12”。

5. 下面代码的输出是什么?

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

A: 1 1 2
B: 1 2 2
C: 0 2 2
D: 0 1 2

答案: C

后缀一元运算符++:

  • 返回值(返回0)

  • 增加值(数字现在是1)
    前缀一元运算符++:

  • 增加值(数字现在是2)

  • 返回值(返回2)

所以返回0 2 2。

6. 下面代码的输出是什么?

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`;

A: Lydia 21 ["", “is”, “years old”]
B: ["", “is”, “years old”] Lydia 21
C: Lydia ["", “is”, “years old”] 21

答案: B

如果使用标记的模板字符串,则第一个参数的值始终是字符串值的数组。 其余参数获取传递到模板字符串中的表达式的值!

7. 下面代码的输出是什么?

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

A: You are an adult!
B: You are still an adult.
C: Hmm… You don’t have an age I guess

答案: C

在比较相等性,原始类型通过它们的值进行比较,而对象通过它们的引用进行比较。JavaScript检查对象是否具有对内存中相同位置的引用。

我们作为参数传递的对象和我们用于检查相等性的对象在内存中位于不同位置,所以它们的引用是不同的。

这就是为什么{ age: 18 } === { age: 18 }和 { age: 18 } == { age: 18 } 返回 false的原因。

8. 下面代码的输出是什么?

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

A: “number”
B: “array”
C: “object”
D: “NaN”

答案: C

扩展运算符(… args)返回一个带参数的数组。 数组是一个对象,因此typeof args返回object。

9.下面代码的输出是什么?

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

A: 21
B: undefined
C: ReferenceError
D: TypeError

答案: C

使用“use strict”,可以确保不会意外地声明全局变量。 我们从未声明变量age,因为我们使用``use strict’,它会引发一个ReferenceError。 如果我们不使用“use strict”,它就会起作用,因为属性age`会被添加到全局对象中。

10.下面代码的输出是什么?

const sum = eval("10*10+5");

A: 105
B: “105”
C: TypeError
D: “10*10+5”

答案: A

eval会为字符串传递的代码求值。 如果它是一个表达式,就像在这种情况下一样,它会计算表达式。 表达式为10 * 10 + 5计算得到105。

js输出类面试题(二)相关推荐

  1. js输出类面试题(四)

    文章目录 1. 单击下面的html片段打印的内容是什么? 2. 下面代码的输出是什么? 3. 下面代码的输出是什么? 4. 下面这些值哪些是假值? 5. 下面代码的输出是什么? 6. 下面代码的输出是 ...

  2. js 定时网页点击_前端面试题整合(JS进阶篇)(二)

    Ajax 是什么? 如何创建一个Ajax? AJAX全称是Asychronous JavaScript And Xml(异步的 JavaScript 和 XML) 它的作用是用来实现客户端与服务器端的 ...

  3. 计算机专业全真模拟试卷答案,最新高职考试全真模拟试卷计算机类试题(二、六、七、八、九、十,山东省,有答案)...

    内容简介: 最新高职考试全真模拟试卷计算机类试题(二.六.七.八.九.十,山东省,有答案) 最新高职考试全真模拟试卷(二)计算机类试题 第一部分 考生共答题(满分100分) 一.填空题(每空1分,共3 ...

  4. 计算机应用类专业综合,计算机应用类专业综合复习试题(二)(33页)-原创力文档...

    计算机应用类专业综合复习试题(二) 一.单项选择题(每小题5分,共100分) 1.计算机中数据的表示形式是( ) A.八进制 B.十进制 C.二进制 D.十六进制 2.下列四个不同数制表示的数中,数值 ...

  5. python3纵向输出字符串_python3字符串输出常见面试题总结

    考察对于知识的理解,除了实际的代码运用,还有一种方法就是问答类的题型.不同于普通的概念叙述,小编认为即使是面试题也会带有一些数学题目的影响,不知道大家有没有想过,如果面试题是字符串方面的我们该如何作答 ...

  6. JS前端调用TSC打印二维码、条码

    公司让用js调用TSC打印二维码,本人已调试成功,希望大家有所帮助! ActiveX下载地址:ActiveX下载地址! 实现代码:JS前端调用TSC打印二维码实现代码 <HTML> < ...

  7. 四级网络工程师试题二

    四级网络工程师试题二 (1) 下列选项中,哪一个不是操作系统所具有的功能?(D) A.管理计算机磁盘 B.提供用户操作计算机的界面 C.管理系统动态库 D.编译高级语言编写的程序 [解析]操作系统是管 ...

  8. 2018年计算机类基础课试题答案,河南省 2018年计算机类基础课试题

    <河南省 2018年计算机类基础课试题>由会员分享,可在线阅读,更多相关<河南省 2018年计算机类基础课试题(8页珍藏版)>请在人人文库网上搜索. 1.河南省 2018 年普 ...

  9. 2014安康电大会计本科网考计算机应用基础试题答案,2014年电大网考计算机应用基础统考试题二及答案小抄[精品].doc...

    2014年电大网考计算机应用基础统考试题二及答案小抄[精品] 窗体顶端 窗体底端 2011年电大网考计算机应用基础统考试题二及答案 [修改时间:2012-9-4 14:30:28 ] [编辑:Admi ...

  10. 由浅入深 65个JS常考面试题

    由浅入深逐个击破 JS常考面试题(上篇) 1. 介绍一下JS的基本数据类型,值是如何存储的? JavaScript一共有8种数据类型,其中有7种基本数据类型:Undefined.Null.Boolea ...

最新文章

  1. linux驱动:音频驱动(四)ASoc之machine设备
  2. chapter_2 索引优先队列
  3. RAW SOCKET探索
  4. Windows下给SourceTree配置外部比较工具BeyondCompare
  5. 【剑指offer】面试题6:从尾到头打印链表(Java)
  6. mysql insert 二进制_MYSQL 插入二进制数的 2 种方法。
  7. Java实验8 T3.编程显示当前鼠标的位置坐标
  8. 足球——2011-2012意甲球队队标
  9. 【转载】为什么要用黑莓?
  10. 遥感图像——多波段数据存储的方式
  11. 如何突破百度云下载速度限制
  12. 移动设备数据丢失恢复有办法
  13. 如何在上海租房,数据有话说
  14. CCF-CSP认证 第一题水题-小明摘苹果(c++满分代码)
  15. 增强感受野SPP、ASPP、RFB、PPM
  16. 好看视频出击,从Q2财报看百度的短视频谋局
  17. 【微信开发6】专属推广二维码 java+SpringBoot
  18. 临床执业助理医师(综合练习)题库【8】
  19. 计算机详细配置快捷键,电脑输入法怎么设置快捷键
  20. 藏不住了,乐视带着新品手机归来!

热门文章

  1. 计算机科学与技术学科带头人,计算机专业学科带头人—陆玉昌教授
  2. 如何建立微信微社区?
  3. 显示前半内容后半内容用省略号_省略号前后的标点用法
  4. Spark3 AQE (Adaptive Query Execution) 一文搞懂 新特性
  5. Kafka单节点安装部署
  6. 如何将EAN13码批量输出成PDF
  7. 子空间的投影矩阵推导过程及其性质
  8. unity 安卓apk安装后的文件路径
  9. 钉钉审批流API接口
  10. python笔记1——基础