首页 > 其他分享 >58同城2021校招笔试真题-前端(复习)

58同城2021校招笔试真题-前端(复习)

时间:2022-08-18 11:46:02浏览次数:63  
标签:公钥 58 真题 元素 证书 2021 服务器 prototype 客户端

58同城2021校招笔试-前端


1.以下代码输出:
console.log([1,2,3,4,5].splice(1,2,3,4,5));
console.log([1,2,3,4,5].slice(1,2,3,4,5));
答案:[2,3]和[2]

解析:splice:返回被删除元素组成的数组(会改变原数组)
   array.splice(start[, deleteCount[, item1[, item2[, ...]]]])
    start:开始删除的位置(从0开始计数);
    deleteCount:删除的个数;
    item1…:从start位置依次开始添加的元素

    slice:返回被提取出来的元素组成的数组(不会改变原数组)
    arr.slice([begin[, end]])
    begin和end分别为提取的起始位置(含)和截止位置(不含),均从0开始。

2.root元素的高 (通过getComputedStyle(root).height计算) 为?
<html>
<body>
<div id="root" style="border:1px solid red;">
<div style="width:10px;height:10px;margin:10px;"></div>
<div style="width:10px;height:10px;margin:20px;"></div>
</div>
</body>
</html>

70px
解析:相邻元素margin重叠,BFC
CSS 盒模型、BFC、IFC、GFC、FFC

3.假定某次上线,1小时内出bug的概率为50%,那么3小时内出bug的概率是?
87.5%
反向推:3小时内不出BUG的概率是0.50.50.5=0.125,则出概率就是1-0.125=0.875
正向推:1/2 +(1/2)² +(1/2) ³=7/8

4.以下代码执行返回?
parseInt('0x111')
1
273
0x开头是16进制

5.下边关于https描述正确的是: A
A.客户端会对服务器下发的证书进行域名校验
B.客户端和服务器交互使用的是服务器下发的私钥
C.黑客拦截服务器下发的证书后就可以伪造服务器和客户端进行通信
D.手机只信任CA颁发的证书
解析:
HTTPS采用混合加密机制,包括公开密钥加密(非对称式加密,有公钥和私钥)和共享密钥加密(对称式加密,共用同样的密钥)。
非对称加密阶段:
1、服务器下发公钥给客户端,客户端使用该公钥加密数据,服务器接收到密文并使用自己的私钥解密;
所以B项错误,服务器下发的是公钥,私钥只在服务器保存。
但在服务器下发公钥的过程中如果被黑客攻击,客户端如果保证自己收到的公钥是否真实呢?这里就出现了CA认证机构,服务器先将公钥发给权威的CA获得公钥证书,再将公钥证书下发给客户端,客户端就可以向CA确认证书的真实性(在这一步骤进行校验,A选项正确)了。
C选项中,若黑客拦截了证书,理论上确实可以让客户端把自己认为是服务器,但是黑客没有私钥,无法解密客户端发来的密文,也就做不到和客户端通信了,C错。
所以这个步骤的实际过程是:
服务器从CA获取公钥证书,下发公钥证书给客户端,客户端通过浏览器内置CA公钥解密该证书得到服务器公钥,使用该公钥加密数据,服务器接收到密文并使用自己的私钥解密;
对称加密阶段:

由于1(非对称加密阶段)速度很慢,所以可以通过1中的方式安全地交换密钥,后续的通信中,服务器和客户端可以使用共享密钥加解密。
D。采用HTTPS协议的服务器必须要有一套数字证书,可以是自己制作或者CA证书。区别就是自己颁发的证书需要客户端验证通过,才可以继续访问,而使用CA证书则不会弹出提示页面。这套证书其实就是一对公钥和私钥。公钥给别人加密使用,私钥给自己解密使用。

6.下边关于XSS描述正确的是:

XSS攻击需要服务器对接口进行防护

7.以下运行结果:
for(var i = 0; i < 10; i++) {

setTimeout(function() {

console.log(i);

}, 1000);

}
10个10


8. 在跨域请求中,下列请求头中哪种content-type一定会触发cors预检查
application/json
触发预检请求的三类条件:

默认情况下,跨域请求只支持GET,HEAD,POST方法,如果不是这三个请求方法(比如:PUT、DELETE、CONNECT、OPTIONS、TRACE和PATCH),那么将触发预检请求

默认情况下,浏览器跨域请求时,会自动添加的请求头(HOST,Referer,Connection、Accept、User-Agent,Accept-Languange,Accept-Encoding,Accept-Charset和Content-Type),这些请求中还有其他请求头时,那么将触发预检请求。

如1、2所说的情况排除在外的条件下,跨域请求是,浏览器支持的Content-Type值为application/x-www-form-urlencoded,multipart/form-data和text/plain。如果是其他数据类型(如application/json,text/xml…),那么将触发预检请求。


9.下面代码输出结果正确的是

function Setcount(count){

this.count=count

}

Setcount.prototype.printCount=function(){

console.log(this.count)

}

let a = new Setcount(100)

a.count =200

a.__proto__.count=300

a.__proto__.printCount()

a.printCount()

300,200


10.关于position定位,下列说法正确的是
z-index属性对元素position属性为relative,absolute, fixed都可以做层级设置


11.请选择console打印的正确值

Object.prototype.foo = 'Object';
Function.prototype.foo = 'Function';
function Animal () {};
var cat = new Animal();
console.log(cat.foo);
console.log(Animal.foo);

Object Function
解析:每个构造函数拥有__prop__和prototype属性,prop__是原型链查询时实际可以查到的,它指向构造函数的原型对象;而prototype是函数独有的,它包含所有实例共享的属性和方法,因此实例化的对象会指向它,
Animal为构造函数,实际指向的是__prop,即Function.prototype,因此Animal.foo即Function.prototype.foo=‘Function’
cat是Animal实例化出来的,因此他们的__proto__指向的是Animal的原型对象,即cat.foo = Object.prototype.foo


12.

var bar = [1,2,3]; for(var i in bar) {                   setTimeout(function(){console.log(bar[i])},0);         console.log(bar[i]); }

答案:123和333


13.下列哪个属性不会引起浏览器重排(reflow):

@keyframes animate {
0%{
transform: translate(0,0);
}
25%{
transform: translate(200px,0);
}
50%{
transform: translate(200px,200px);
}
75%{
transform: translate(0,200px);
}
}
.hide {
visibility:hidden;
}


14.关于javascript,以下选项描述错误的是 B E
A.在原型上扩展的可枚举方法,会被for in循环出来
B.通过hasOwnProperty可判断一个对象以及其原型链上是否具有指定名称的属性
C.每个函数对象都有prototype属性,返回对象类型原型的引用
D.For循环是按顺序的,for in 循环是不一定按顺序的
E.for…of 循环可遍历普通对象,如{a:‘1’, b:2}
B:hasOwnProperty的可判断对象不包括原型链
E:for…of…: 它是es6新增的一个遍历方法,但只限于迭代器(iterator),因此普通的对象用for…of遍历,是会报错的。它原型链上的某个对象,必须有一个键为 @@iterator 的属性
(包括 Array,Map,Set,String,TypedArray,arguments 对象等等


15.下列关于js事件的描述中,正确的有
A.事件冒泡是指当一个元素上的事件被触发的时候,比如说鼠标点击了一个按钮,同样的事件将会在那个元素的所有祖先元素中被触发。
B.不支持冒泡的事件有blur、focus、load、resize、mouseleave
D.通过addEventListener方法给Dom添加事件监听,addEventListener形参中的第三个参数控制是捕获传递触发还是冒泡传递触发。


16.css中哪些属性可以继承

font-size color


17.BFC(Block Formatting Context)格式化上下文,是Web页面中盒模型布局的CSS渲染模式,指一个独立的渲染区域或者说是一个隔离的独立容器。形成BFC的条件有
A.display 为以下其中之一的值 inline-block,table-cell,table-caption、flex
B.浮动元素,float 除 none 以外的值
C.overflow 除了 visible 以外的值(hidden,auto,scroll)
D.绝对定位元素,position(absolute,fixed)
解析:浮动元素,绝对定位元素,非块级盒子的块级容器(例如inline-blocks,table-cells,and table-captions),以及overflow属性值不是“ visible”(visible是overflow的默认值)的块级盒子(视口除外),这些元素就会为他们的内容创建一个BFC。

18.下列会导致页面回流reflow的操作有
添加或者删除可见的DOM元素
resize浏览器窗口
设置可见元素为display: none
读取元素的属性offsetWidth和offsetHeight

19.关于position定位,下列说法正确的是
absolute的元素,如果它的父容器设置了position属性,并且position的属性值为absolute或者relative,那么就会依据父容器进行偏移
fixed元素,可定位于相对于浏览器窗口的指定坐标,它始终是以 body 为依据
relative元素是参照父级的原始点为原始点,无父级则以BODY的原始点为原始点,配合TOP、RIGHT、BOTTOM、LEFT进行定位,当父级内有padding等CSS属性时,当前级的原始点则参照父级内容区的原始点进行定位


20.结果为真的表达式:
null = = undefined
undefined = == undefined
null = = null
null = = = null


21.实现一个函数,输入一个字符串,返回该字符串出现最多的字母。


22.编写查询函数返回数字字符串中最大的公共前缀字符串。


23.帮帮同学在设计一个文字碰碰消游戏,规定"五"和"八"形成"五八"组合碰到一起即会消除,(“八五” 不会消除)。

例如 “五八”, “五八五八”, “五五八八”。说明: “五五八八” 是内层的"五八"碰在一起消除后,外层的"五八"会碰在一起消除。

帮帮同学想知道n个"五"和"八"组成的字符串中,有多少种组合可以满足消除为空字符串。

现为帮帮同学设计一个方法,输入整数n,表示"五"和"八"的数量,返回n个"五"和n个"八"组成的字符串中,满足消除为空字符串的组合数。

标签:公钥,58,真题,元素,证书,2021,服务器,prototype,客户端
From: https://www.cnblogs.com/iqcarry/p/16598136.html

相关文章

  • P7909 [CSP-J 2021] 分糖果
    题目描述红太阳幼儿园有 nn 个小朋友,你是其中之一。保证 n\ge2n≥2。有一天你在幼儿园的后花园里发现无穷多颗糖果,你打算拿一些糖果回去分给幼儿园的小朋友们。由......
  • 迅为RK3588开发板Linux安卓12瑞芯微ARM核心板人工智能工业AI主板
      RK3588是一款低功耗、高性能的处理器,适用于基于arm的PC和Edge计算设备、个人移动互联网设备等数字多媒体应用,采用8nm结构,将四核Cortex-A76和四核Cortex......
  • Redis Desktop Manager for Mac(Redis可视化工具) v2021.10.236中文版
    mac软件下载:https://mac.macsc.com/mac/2697.html?id=MzI1OTY2 RedisDesktopManagermac版是一个快速、简单、支持跨平台的RedisDB管理工具,专为Mac用户设计,基于Qt5......
  • [AcWing 258] 石头剪刀布
    带扩展域的并查集点击查看代码#include<bits/stdc++.h>usingnamespacestd;typedeflonglongLL;constintN=1e6+10;intn,m;intp[N];structN......
  • C++primer练习13.55-58
    练习13.55为你的StrBlob添加一个右值引用版本的Push_backvoidStrBlob::push_back(string&&s){data->push_back(std::move(s));}练习13.56如果sorted定义如下,会发生......
  • AtCoder Beginner Contest 258
    A-When?问21:00后的第k分钟的时间#include<bits/stdc++.h>usingnamespacestd;constintN=2e5+5;intn,a[N],cnt,k;int32_tmain(){ intn,h=21......
  • AGC058D Yet Another ABC String
    link由于限制是循环的考虑用连续段容斥。直接容斥的做法是枚举一组限制,并带上\((-1)^c\)的系数:某些相邻的三个数必须\(\in123,231,312\),相交的限制会互相影响得到连......
  • qt5.9 +vs2015 32bit 错误“-1: error: LNK1158: 无法运行“rc.exe”
    开发平台qt5.9.0+vs201532bit....在准备运行vs2015及安装了vs2019后,运行原来可以运行的程序时,出现了错误“-1:error:LNK1158:无法运行“rc.exe”复制了“C:\Progra......
  • CSP202112-4 磁盘文件操作
        第一眼,嗯,线段树裸题。开写,交,发现空间炸了,遂离散化。再交,发现在操作0的时候有可能遇到离散化中没出现过的点(即给定数据外的点),因为要二分右端点。怎么办呢?大胆观......
  • office办公软件大全:Microsoft Office LTSC 2021 for Mac
    office2021forMac商业预览Mac版office2021包括Word,Excel,PowerPoint,Outlook,OneDrive,最新版本的office将附带新的深色模式支持,辅助功能改进,对Word、Excel、PowerPoint、......