2018网易前端笔试题

作者: Adonia汪 | 来源:发表于2020-04-05 23:28 被阅读0次

    一、选择题

    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
    

    答案:

    相关文章

      网友评论

        本文标题:2018网易前端笔试题

        本文链接:https://www.haomeiwen.com/subject/awjmphtx.html