2019届校招前端笔试题集锦

2018网易前端笔试题

2020-04-05  本文已影响0人  Adonia汪

一、选择题

1、执行下列语句后,变量name1和name2的值分别为(A)
var name = 'tom';
var person = {
    name:'jerry',
    getName:function(){
        return this.name;
    }
};
var getName = person.getName;
var name1 = person.getName();
var name2 = getName();

A. jerry tom
B. tom tom
C. jerry jerry
D. tom jerry

2、以下代码运行结果输出obj、obj2的结果是(A)
const obj = {a:1,b:2};
obj.a = 2;
var obj2 = Object.freeze({
    a:1,
    b:2,
});
obj2.a = 2;
console.log(obj,obj2);

A. {a : 2 , b : 2},{a : 1 , b : 2}
B. {a : 1 , b : 2},{a : 1 , b : 2}
C. {a : 2 , b : 2},{a : 2 , b : 2}
D. {a : 1 , b : 2},{a : 2 , b : 2}

解析:对于复合类型的变量,变量名不指向数据,而是指向数据所在的地址。const命令只是保证变量名指向的地址不变,并不保证该地址的数据不变,所以将一个对象声明为常量必须非常小心。如果真的想将对象冻结,应该使用Object.freeze方法。

3、在table标签中,用来表示表格边框粗细的是(D)

A. border-style;
B. cellpadding;
C. cellspacing;
D. border;

解析:border-style 属性用于设置元素所有边框的样式。border-style:dotted solid double dashed;

cellpadding 属性规定单元边沿与其内容之间的空白。cellpadding 是边框与其内容的间隙大小;

cellspacing 属性规定单元格之间的空间。cellspacing 是边框与边框之间的间隙大小;

border 简写属性在一个声明设置所有的边框属性。border:5px solid red;

可以按顺序设置如下属性:border-width、border-style、border-color

4、若要找出一个序列中的大小对,比如{2,1},{4,2},可以借助于下列哪种排序算法(D)

A. 堆排序
B. 快速排序
C. 选择排序
D. 归并排序

解析:选择排序基本思想为每一趟从待排序的数据元素中选择最小(或最大)的一个元素作为首元素,直到所有元素排完为止。

堆排序的基本思想是:将待排序序列构造成一个大顶堆,此时,整个序列的最大值就是堆顶的根节点。将其与末尾元素进行交换,此时末尾就为最大值。然后将剩余n-1个元素重新构造成一个堆,这样会得到n个元素的次小值。如此反复执行,便能得到一个有序序列了。

快速排序通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序

归并排序采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之)

该题目的思想是:一个一个地找,用n-1次比较来找出最大元,再用n-2次比较找出最小元,比较次数(基本运算)为2n-3次。用分治法。

5、请挑选出最精简的css代码:(A)

A. margin:0;
B. padding: 10px 0px;
C. color: #ffffff;
D. border: 1px solid #ff0000;

解析:常用简写属性包括 animation、background、border、font、margin、padding、transition

6、以下方法不能减少页面加载时间的是(D)

A. 合并js,css文件,减少http请求
B. 将重要的HTML元素放置于页面顶部
C. 使用sprnt图片,减少图片大小
D. 标明元素宽高,防止页面重绘

7、在一个双链表中,已知n所指向结点是m所指向结点的后驱结点,若在m和n之间插入一个新的结点s,则下列执行语句正确的是(A)

A. s->next = n; n->prior = s; s->prior = m; m->next = s;
B. s->next = n->next; n->prior = s; s->prior = m; m->next =s;
C. m->next = s->next; s->prior = m; s->next =n; n->prior = s;
D. m->next = s; s->prior = m; s->next = n; n->prior = s;

8、以下代码执行结果是(D)
var regex = /a/g;
console.log(regex.test("a"),regex.test("aba"),regex.test("ababc"));

A. true , false , false
B. true , true , true
C. false , false , false
D. true , true , false

解析:第三次调用test,因为这一次尝试匹配,开始从下标lastIndex3位置处开始查找,没有了a,自然就找不到了。如果没有g,自然都是从字符串第0个字符处开始尝试匹配,此时都为true

9、下面有关查找的说法错误的是(C)

A. 在二叉树中查找一个节点,借助于二分查找
B. 无序表中查找数据用顺序查找的方法
C. 在链表中查找一个元素用顺序查找的方法
D. 在有序表中查找数据用二分查找

10、以下代码执行结果是(B)
var a = 1; let b = 2;
console.log(window.a,window.b);

A. 1 , 2
B. 1 , undefined
C. undefined , undefined
D. undefined , 2

11、以下代码执行时console.log的结果是(B)
var a = 1;
(function a(){
    a = 2;
    console.log(a);
    delete a;
    console.log(a);
})();

A. 函数 a,2
B. 函数 a,函数 a
C. 2,函数 a
D. 2,1

12、下面关于TCP/IP协议断开连接的说法错误的是(D)

A. 客户端和服务端都可以发起中断连接请求
B. TCP/IP连接4次挥手才能断开连接
C. 当服务端发起断开连接请求,客户端先发送ACK报文到服务器,之后才会发送FIN报文到服务端
D. 当客户端发送FIN报文到服务端,服务端一起发送FIN和ACK报文到客户端,表示同意断开连接

解析:服务器收到断开请求后并不是立即断开连接,而是先向客户端发送“确认包”,告诉它我知道了,我需要准备一下才能断开连接,再发送FIN包,告诉它我准备好了,断开连接吧。D错

中断连接端可以是Client端,也可以是Server端。A对

当服务器进程被终止时,会关闭其打开的所有文件描述符,此时就会向客户端发送一个FIN 的报文,客户端则响应一个ACK 报文,但是这样只完成了“四次挥手”的前两次挥手,也就是说这样只实现了半关闭,客户端仍然可以向服务器写入数据。 但是当客户端向服务器写入数据时,由于服务器端的套接字进程已经终止,此时连接的状态已经异常了,所以服务端进程不会向客户端发送ACK 报文,而是发送了一个RST 报文请求将处于异常状态的连接复位; 如果客户端此时还要向服务端发送数据,将诱发服务端TCP向服务端发送SIGPIPE信号,因为向接收到RST的套接口写数据都会收到此信号.

13、在ISO网络模型中,分为七层,每一层都有着独特的功能,并且在相关层存在一些物理设备,以下对应关系错误的是(A)

A. 数据链路层:网关
B. 物理层:转发器
C. 数据链路层:网桥
D. 网络层: 路由器

名称 传输协议 传输单元 主要功能设备/接口
物理层 IEEE 802.1A、IEEE 802.2 bit-flow 比特流 光纤、双绞线、中继器和集线器 & RJ-45(网线接口)
数据链路层 ARP、MAC、 FDDI、Ethernet、Arpanet、PPP、PDN frame 帧 网桥、二层交换机
网络层 IP、ICMP、ARP、RARP 数据包(packet) 路由器、三层交换机、网关
传输层 TCP、UDP Segment/Datagram 四层交换机
会话层 SMTP、DNS 报文 QoS
表示层 Telnet、SNMP 报文
应用层 FTP、TFTP、Telnet、HTTP、DNS 报文
14、请从以下选项中选出不是css3中新增的伪类(B)

A. nth-child(2);
B. before;
C. first-of-type;
D. checked

解析:CSS3 中的:checked 选择器匹配每个已被选中的 input 元素(只用于单选按钮和复选框)。

CSS3 中的:first-of-type 选择器匹配属于其父元素的特定类型的首个子元素的每个元素。

CSS3 中的:nth-child(n) 选择器匹配属于其父元素的第 N 个子元素,不论元素的类型

:before 选择器在被选元素的内容前面插入内容。不是CSS3新增的

15、一个二叉树的中序遍历序列为{D,B,E,F,A,C},后序遍历序列为{D,F,E,B,C,A},则其先序遍历序列为(D)

A. {A,B,E,D,F,C}
B. {A,D,F,E,B,C}
C. {A,B,D,E,C,F}
D. {A,B,D,E,F,C}

解析:


1538731467593.png
16、以下说法错误的是(D)

A. display:inline-block;像行内元素一样显示,但内容同时有块类型的部分特性
B. display:block;是像块级元素一样显示
C. display:list-item; 与块级元素特性一样,同时具有列表标记
D. display:none; 不显示元素,但是占据物理空间;

解析:display:none;会让元素完全从渲染树中消失,渲染的时候不占据任何空间; visibility: hidden;不会让元素从渲染树消失,渲染时元素继续占据空间,只是内容不可见

17、一个入栈序列为{A,B,C,D,E},下面哪个序列可能是出栈序列(B)

A. {A,D,B,E,C}
B. {A,B,C,D,E}
C. {A,D,B,C,E}
D. {A,B,E,C,D}

18、如果已知数字有{1,2,5,10},每个数字可以无限次使用,构造出数字100,编程解决用到的编程思想有(C)

A. 排列组合
B. 递归
C. 回溯法
D. 动态规划

19、以下代码执行结果是(D)
var obj = {
    x:1,
    xyz:function(){
        with(this){
            function con(){
                console.log(x);
                console.log(this.x);
            }
            var x = 2;
            (function(){
                con();
            })();
            con.call(this);
        }
    }
}
obj.xyz();

A. 2,undefined,undefined,1
B. undefined,undefined,undefined,2
C. 2,undefined,2,undefined
D. 2,undefined,2,2

解析:with语句的作用是将代码的作用域设置到一个特定的作用域中。题中对象中有函数,with中的this代表是obj对象,所以with扩展了obj作用域,那么xyz中的变量x就会由原来的xyz内部提升变为obj对象提升。所以obj中的变量a由1变成了2。

20、Vue.js源码中使用了什么类型检查工具(A)

A. flow
B. flowcheck
C. 其他
D. typescript

二、问答题

1、题目描述:网站搜索功能一般需要为用户提供搜索建议,比如百度搜索,用户在输入时,输入框下方会出来一个绝对定位的建议词列表;假设根据用户输入关键词获取建议列表的js函数为getSuggestWords,该函数返回一个Promise对象,resolve时返回的建议词列表格式如['a','b'],比如getSuggestWords('a').then(function(words){ /do something/ });现页面上有一个input元素(id为keyinput),请使用原生JS、HTML、css,为其添加输入建议功能,效果可参考:https://163.lu/k/XftXv2

答案:

2、题目描述:网站在开展一些限时活动时,一般会在页面上显示倒计时,此类场景下,服务端会给前端传倒计时“剩余毫秒数”,前端根据剩余毫秒数计算出具体时分秒等信息,实时更新到页面上;
  1. 请实现一个js函数remainTime,根据“剩余毫秒数”,返回剩余的天、时、分、秒、毫秒,24小时进位为一天,60分钟进位为一小时,以此类推;比如remain Time(2000)返回{day:0,hour:0,min:0,sec:0,ms:0}

  2. 请实现一个定时器函数counter,传入“剩余毫秒数”、回调函数,要求此计时器能每100毫秒调用一次回调函数,并将最新的剩余时间等信息(remain Time的计算结果)通过参数传递给回调函数;比如:counter(2000,function(time){});请注意setInterval的回调时间点不一定准确,每次触发时要重新计算当前剩余毫秒数。

答案:

三、编程题

1、题目描述:小易准备去拜访他的朋友,他的家在0点,但是他的朋友的家在x点(x>0),均在一条坐标轴上。小易每一次可以向前走1,2,3,4或者5步。问小易最少走多少次可以到达他的朋友的家

输入描述:

一行包含一个数字x(1 <= x <= 1000000),代表朋友家的位置

输出描述:

一个整数,最少的步数

输入:

4

输出

1

输入

10

输出

2

答案:

上一篇下一篇

猜你喜欢

热点阅读