美文网首页首页投稿(暂停使用,暂停投稿)
今日头条2017秋招前端笔试试卷解析(1)

今日头条2017秋招前端笔试试卷解析(1)

作者: 大侠一点红 | 来源:发表于2017-08-01 15:30 被阅读0次

    今天上午花了两个小时做了今日头条2017秋招前端笔试试卷,试题分选择和编程两种题型,选择题主要考了web前端,算法和计网知识,三道编程(1.h5+css 2.js 3.字典序排序),中间有些连蒙带猜分数算过得去

    那么,我准备将试卷分两部分,这一次上8道选择题加html/css编程题

    选择题部分

    1.变量a是一个64位有符号的整数,初始值用16进制表示为:0Xf000000000000000; 变量b是一个64位有符号的整数,初始值用16进制表示为:0x7FFFFFFFFFFFFFFF。 则a-b的结果用10进制表示为多少?()

    A.1

    B.-(2^62+2^61+2^60+1)

    C.2^62+2^61+2^60+1

    D.2^59+(2^55+2^54+…+2^2+2^1+2^0)

    第一种(我的想法):首先,a是一个负数(符号位为1),且负数在计算机中是以补码的形式存在的,所以a实际数为1001后面60个0,。b是个正数,正数补码和原码一致,所以b实际数就是0111后面60个0。那么a-b=a+(-b),将b的所有位取反后+1得到(-b)(1001后面60个0),但是在最高位1+1等于10,会溢出,所以和的第一位是0,是正数,所以排除B,然后结果就会是0011后面60个0或1。所以选择C选项

    2.下面程序得到的结果分别是什么?()

    console.log(([])?true:false);

    console.log(([]==false?true:false));

    console.log(({}==false)?true:false)

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

    解析:

    Boolean([]); //true             Number([]); //0              Number({}); // NaN             Number(false); //0

    因此:

    console.log(([])?true:fasle);// => console.log((true)?true:false);      //true

    console.log([]==false?true:false); // => console.log(0==0?true:false);        //true

    console.log(({}==false)?true:false); // => console.log((NaN==0)?true:false);       //false

    选D选项

    拓展:《JavaScript权威指南》的部分相关知识点

    “==”运算符(两个操作数的类型不相同时)

    如果一个值是null,另一个值是undefined,则它们相等

    如果一个值是数字,另一个值是字符串,先将字符串转换为数学,然后使用转换后的值进行比较。

    如果其中一个值是true,则将其转换为1再进行比较。如果其中的一个值是false,则将其转换为0再进行比较。

    如果一个值是对象,另一个值是数字或字符串,则将对象转换为原始值,再进行比较。

    3.下列哪些是块级元素()

    正确答案: B C D E F   你的答案: B C D E F(正确)

    A.input   B.ul   C.hr   D.li   E.div   F.form

    解析:基础前端题,块级元素和行内元素的记忆(只要记块级元素就好了)

    块级元素:div hr h1-h6 ul ol li form p pre blokequote menu table fieldset address

    行内元素(常考的):a span input label img font等

    4.关于跨域问题下面说法正确的是?()

    A.可以利用flash的http请求,来处理跨域问题

    B.通过iframe设置document.domain可以实现跨域

    C.一般情况下,m.toutiao.com可以ajax请求www.toutiao.com域名下的接口并获得响应

    D.通过jsonp方式可以发出post请求其他域名下的接口

    解析:这个题是有问题的,我确定的是D答案是错的,因为jsonp只有GET请求,C答案主域相同子域不同所以不会跨域,A的话当时没有听过,所以没选但是百度之后发现竟有这种操作链接:http://crystalwiner.iteye.com/blog/1168317   但是B是正确的,所以答案还是有待商榷的,选A,B

    相关知识:http://blog.csdn.net/as645788/article/details/51285688

    5.以下符合ES6写法的有:()

    A. class Foo        {     constructor()   {   return Object.create(null);    }       }         Foo()

    B. var m=1;            export m;

    C.    export var firstName=’Michael’;

    D:在A模块中export{readFile}后,在B模块中import readFile from ‘A’可以获取到readFile

    解析:

    A、构造函数需要使用new来调用

    B、export 后面变量没加括号;

    D、import readFile没加括号,是导入 default 的用法,但是前面不是 export 为 default

    6.可继承的样式属性包括()

    A.color   B.background-color   C.font-size   D.border   E.margin

    解析:还是考基本知识,需要记忆  http://www.cnblogs.com/thislbq/p/5882105.html

    7.堆的数据结构能够使得堆顶总是维持最大(对于大根堆)或最小(对于小根堆),给定一个数组,对这个数组进行建堆,则平均复杂度是多少?如果只是用堆的push操作,则一个大根堆依次输入3,7,2,4,1,5,8后,得到的堆的结构示意图是下述图表中的哪个?()

    A.O(n)

    B.O(n),

    C.O(logn)

    D.O(n),

    解析:建堆的时间复杂度O(n)(《算法导论》有证明),压堆的顺序是每一次将元素插入到堆的最后,然后调整至大顶堆,所以选D

    8.http请求方式get和post的区别包括()

    A.get和post的可传输内容大小不一样,一个有限制一个没有限制

    B.get和post传输的内容存放的位置不一样,一个放在header,一个放在body

    C.get请求Content-type只能是text/html

    D.get请求可以跨域、post请求不能跨域

    解析:

    C .错误,get的Content-type不仅可以是text/html,也可以是其他,如 application/json, text/plain 等等

    D.错误, post一样可以跨域

    所以选A,B

    编程题:

    使用HTML+CSS实现如图布局,border-width:5px,格子大小是50px*50px,hover时

    边框变成红色,需要考虑语义化。

    解析:典型的前端基本功题,这里我第一回做用的是table,因为想着table排版快,快速生成,但是有个问题,就是鼠标移到格子时每个格子之间的空隙是无法变色的,但如果把每个格子的border变粗,整个table就变大了,不符合题意。

    所以使用在div中添加button元素来完成,这样效果就更符合题意

    相关文章

      网友评论

        本文标题:今日头条2017秋招前端笔试试卷解析(1)

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