题解百度2020校招Web前端工程师笔试卷(第三批):单选题多选题
Posted karshey
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了题解百度2020校招Web前端工程师笔试卷(第三批):单选题多选题相关的知识,希望对你有一定的参考价值。
题目来源:牛客网公司真题_免费模拟题库_企业面试|笔试真题 (nowcoder.com)
若有错误请指正!
单选题
1
请选出3的颜色:
<style>
ul color: blue !important;
ul > li color: green;
ul li + li color: red;
li color: yellow;
</style>
<ul><li>1</li><li>2</li><li>3</li></ul>
答:
红色。
解:
li:first-of-type + li
color: red;
因此,红色。
请选出3的颜色 u_百度笔试题_牛客网 (nowcoder.com)
2
下列哪项transform属性可以对元素进行旋转()
A translate
B scale
C rotate
D skew
答:
C。
解:
移动translate
缩放scale
旋转rotate
倾斜skew
3
哪种方式的CSS优先级最高:
A link引入
B @import注入
C 内联方式引入
D 行内方式引入
答:
D。
解:
离元素越近,优先级越高。因此行内样式。
行内样式:
内联样式:
CSS的基础概念、行内样式(内嵌样式)、内部样式(内联样式)、外部样式(外联样式)、字体相关属性及相关练习的案例_内嵌样式和内部样式_坚持曾今曾坚持的的博客-CSDN博客
4
input元素元素可以设置不同的type类型,下面哪种类型不正确()
A submit
B file
C password
D option
答:
D。
解:
A:submit,定义提交按钮。提交按钮会把表单数据发送到服务器。
B:file,定义输入字段和 "浏览"按钮,供文件上传。
C:password,定义密码字段。该字段中的字符被掩码。
5
js数组中不会改变原有数组的方法是()
A push
B concat
C sort
D shift
答:
B。
解:
concat() 连接两个或者更多地数组,并返回结果,不会改变原数组。
6
下列哪种方法不能改变this指向()
A eval
B apply
C bind
D call
答:
A。
解:
eval()方法是计算某个字符串,并执行其中的的 javascript 代码。
BCD:都可以改变this指向。
7
下列对js箭头函数描述错误的是()
A 箭头函数没有原型属性
B 箭头函数不绑定this,会捕获其所在的上下文的this值,作为自己的this值
C 箭头函数可以作为构造函数,使用new
D 箭头函数不绑定arguments,取而代之用rest参数解决
答:
C。
解:
箭头函数:
- 不绑定this、arguments
- 不可做为构造函数、使用new
- 因此,没有构建原型的需求,没有prototype这个属性
因此选C。
【JavaScript高级】this绑定、绑定优先级、相关面试题与箭头函数_karshey的博客-CSDN博客
8
const promiseA = Promise.resolve('a')
promiseA.then((res) =>
console.log(res)
).then((res) =>
console.log(res)
)
const promiseB = Promise.resolve('b')
promiseB.then((res) =>
console.log(res)
)
promiseB.then((res) =>
console.log(res)
)
答:
a b b undefined。
解:
执行顺序:
由于A的第一层then没有返回任何值,第4个输出为undefined。
9
设任务列表有三个异步的任务,即 taskList = [taskA, taskB, taskC]
,想使用 async/await
配合 forEach
实现串行执行,以下哪个代码是可行的?
A
async function run()
taskList.forEach(async (task) => await task())
run()
B
async function run()
taskList.forEach((task) => await task())
run()
C
function run()
List.forEach(async (task) => await task())
run()
D 其余都不对
答:
D。
解:
forEach同/异步问题_foreach 同步_coder_coan的博客-CSDN博客
10
function fun()
return () =>
return () =>
return () =>
console.log(this.name)
var f = fun.call( name: 'foo' )
var t1 = f.call( name: 'bar' )()()
var t2 = f().call( name: 'baz' )()
var t3 = f()().call( name: 'qux' )
答:
foo foo foo。
解:
箭头函数没有自己的this,因此会去外层找this。因此每个返回的this指向的都是fun的this,即foo。
11
在 React 项目中,绑定 this
通常有如下两种写法:
class LoggingButton extends React.Component
handleClick = () =>
console.log('this is:', this)
render()
return (
<button onClick=this.handleClick>
Click me
</button>
)
class LoggingButton extends React.Component
constructor()
super(props)
this.handleClick = this.handleClick.bind(this)
handleClick()
console.log('this is:', this)
render()
return (
<button onClick=this.handleClick>
Click me
</button>
)
哪种写法运行效率更高?
A 箭头函数式
B 非箭头函数式
C 运行效率相同
D 无法确定
答:
B。
解:
箭头函数没有自己的this,它找this要从上下文推断,因此效率不会比非箭头函数高。
12
已知现有一个大小为4初始状态为空的栈,现在有一组数据经过这个栈后,最终的数据顺序是:2 5 4 1 3,问原始的进栈数据不可能是以下的哪组
A 1 4 5 2 3
B 5 2 3 1 4
C 3 4 5 2 1
D 4 1 3 5 2
答:
D。
解:
栈:先进后出。对D,2是最后一个进去的元素,但要求最先出,而栈的大小只为4,不够,无法达成。
13
序列20, 23, 28, 41, 61, 31, 71, 76, 15, 30构造为完全二叉树,完全二叉树再变为最小堆后,堆所对应的的中序遍历序列可能为()
A 76, 23, 41, 61, 20, 30, 31, 15, 28, 71
B 76, 23, 41, 20, 61, 30, 15, 31, 28, 71
C 76, 20, 41, 23, 30, 61, 15, 31, 28, 71
D 76, 23, 20, 41, 61, 15, 31, 20, 28, 71
答:
B。
解:
完全二叉树:20, 23, 28, 41, 61, 31, 71, 76, 15, 30。
最小堆:节点的值比左右子树都要小:15,20,28,23,30,31,71,76,41,61
中序遍历:B。
14
有如下递归函数 test(n),其时间复杂度为多少?
int test(int n)
if (n <= 1) return 1;
return (2 * test(n - 1) + 3 * test(n - 2));
答:
O(2n)
解:
每一层递归调用两次递归,所以是2n
15
属于同一进程的两个线程 T1和 T2并发执行,共享初值为 0 的全局变量 X。T1和 T2实现对全局变量 x 加 1 的伪代码分别如下:
T1:
temp1=X;
temp1=temp1+1;
X=temp1;
T2:
temp2=X;
temp2=temp2+1;
X=temp2;
2个线程进行到任意一步都能被对方打断,执行另外一个线程的代码,请问在所有可能的执行序列中,使 x 的值为 2 的序列个数有几种?
答:
解:
T1执行完后T2,或T2执行完后T1。
16
shell脚本中,需求如下:如果 ls /tmp 执行成功输出True,否则输出Fail,下列哪项正确.
A ls /tmp; [[ $# -eq 0 ]] && echo True || echo Fail
B ls /tmp; [[ $* -eq 0 ]] && echo True || echo Fail
C ls /tmp; [[ $0 -eq 0 ]] && echo True || echo Fail
D ls /tmp; [[ $? -eq 0 ]] && echo True || echo Fail
答:
D。
多选题
17
由于前端直接可被用户访问,攻击者可以轻易得到页面和通讯过程中的相关信息,进而进行恶意的攻击,关于其攻击的方式描述正确的有哪些?
A 假定站点 foo.com 的服务器架设在公司内网,提供了任意站点截图服务 foo.com/screenshot?url=xxx,恶意修改 url 中的值为内网地址,构成 SSRF 攻击,进而造成数据泄露的风险
B 网站 foo.com 提供 POST 方法的 /tansfer/to/xxx 的转账服务,由于未做 CSRF 的防范,被攻击者重复伪造该请求,形成重放攻击,造成经济损失
C 网站 foo.com 使用了非安全的 HTTP 协议,其中转账服务 POST /transfer/to/xxx,转账金额 money 在 payload 上,假定接口层面采用了随机 token 来防范 csrf 攻击,接口参数未做签名校验,此时攻击者通过篡改 money 的数值,构成中间人攻击
D 借助社会工程学的理论基础,基于用户的贪婪等心理,制作一个 qq.com 的”冒牌”中奖页面,诱导用户输入账号密码进行登录,造成隐私的泄露,属于”钓鱼”的网络欺诈行为
答:
ABCD。
18
假设一个数组采用快速排序,则下面的选项中,不可能是第3趟排序结果的是
A 4, 8, 6, 10, 12, 16, 14
B 10, 4, 6, 8, 12, 14, 16
C 8, 4, 6, 12, 10, 14, 16
D 4, 8, 6, 12, 10, 16, 14
答:
ACD。
解:
我解不出来。
19
某进程创建的若干个线程,这些线程不能共享的是
A 程序计数器
B 某线程的栈指针
C 进程打开的文件
D 全局变量
E 进程的堆空间
答:
AB。
解:
线程独享栈,共享进程堆。
20
tcp发送报文数据时,可能将多个数据包合并成一个大的数据包发送,就有可能发生粘包问题。以下可以用来解决这个问题的是?
A 发送固定长度的消息
B 包结尾增加分隔符
C 慢开始算法
D 把消息分成消息头和消息体,其中消息头上包含长度
E 利用滑动窗口实现控制
答:
ABD。
解:
出现粘包,主要是tcp为了提高效率,每次都要等足够长的数据才进行发送,接收方要等到足够长的数据才从缓冲区提取。解决的办法就是只要能把包分开就不影响传输。
A:固定长度,肯定可以; B:分隔符 D:添加长度信息。
以上是关于题解百度2020校招Web前端工程师笔试卷(第三批):单选题多选题的主要内容,如果未能解决你的问题,请参考以下文章
题解百度2020校招Web前端工程师笔试卷(第一批):单选题多选题
题解百度2021校招Web前端工程师笔试卷(第一批):单选题多选题