58前端内推笔试2017(含答案)

1.填空题

(1)获取随机数的方法:Math.random

(2)JS中奖一个变量前置强制改成浮点类型的方法:parseFloat(String)

(3)根据id获取元素的原生js方法:getElementById();

(4)将文档声明为HTML5文档类型,需要在文档头添加:<!DOCTYPE html>

(5)Chrome浏览器的私有样式前缀:-webkit-

(6)CSS3设置圆角的属性名:border-radius

(7)CSS中,#是根据id来选择元素的,.是根据类名来选择元素的。

(8)form标签特有的属性请列举三个:method、action、enctype、target

(9)正则表达式中,$是什么意思:结尾位置

(10)typeof ‘123‘返回:number

2.简答题

(1)自定义一个浏览器兼容的事件绑定方法需要注意哪些问题?(答案不确定)

对以存在的事件绑定方法进行判断。

能兼容各主流浏览器。

IE中没有捕获阶段,只能处理冒泡阶段。

IE里事件触发的顺序和标准浏览器相反(现在一致了)

(2)设计一个布局方案,使得页面在pc端和pad端显示为一行三列,在手机端为一列三行。

样式:

.parent-fix {

margin-left:-20px;

}

.parent {

display:table;

width:100%;

table-layout:fixed;

}

.column {

display:table-cell;

padding-left:20px;

}

@media screen and (max-width:320px){

.parent-fix {

margin-left: 0;

}

.parent {

display:block;

width:100%;

}

.column {

display:block;

padding-left:0;

}

}

结构:

<div class="parent-fix">

<div class="parent">

<div class="column"></div>

<div class="column"></div>

<div class="column"></div>

</div>

</div>

(3)请解释JSONP的工作原理

JSONP是处理跨域资源访问的。

JSONP的原理是利用html页面中的script标签可跨域的原理,利用<script>标签向服务器端请求一段JS代码,

然后,执行这段js代码,实现跨域的过程。

(4)display和position都有哪些值?分别列举一下这些值的用途?

display:block/inline/inline-block /table/table-cell/none

position: relative/absolute/fixed/static

display:block;/*当前元素以块级形式显示,默认宽度为父元素,可设定宽高,换行显示*/

display:inline;/*当前元素以行内形式显示,默认宽度为内容宽度,不可设宽高,同行显示*/

display:inline-block;/*显示时,默认宽度为内容宽度,可设宽高,同行显示*/

display:table;/*显示规则和block相同,但是样式为table的样式*/

display:table-cell;/*以table 单元格的样式显示*/

display:none;/*元素小时,位置也不占*/

position:relative;/*当前元素被设为相对定位,元素在文档流中,百分比的参照物是元素本身*/

position:absolute;/*当前元素被设为绝对定位,元素脱离文档流,定位参照物:第一个定位祖先/根元素*/

position:fixed;/*当前元素被设为固定定位,默认宽度为内容宽度,脱离文档流,参照物是视窗*/

(5)地址栏输入一个地址后,输入回车,描述一下这是开始,浏览器做什么。

1.在浏览器中输入要的网址:例如:facebook.com

2.浏览器查找域名的IP地址

导航的第一步是通过访问的域名找出其IP地址。DNS查找过程如下:

浏览器缓存--浏览器会缓存DNS记录一段时间。但操作系统没有告诉浏览器存储的时间,这样各个浏览器会存储各自的

一个固定的时间(2分钟到30分钟不等)。

系统缓存--如果在浏览器缓存里没有找到需要的记录,浏览器会做一个系统调用(windows里是gethostbyname)。这样便能获得系统缓存中      的记录。

路由器缓存--接着,前面的查询请求发向路由器,它一般有自己的DNS缓存。

ISP(互联网服务提供商) DNS缓存--接下来要检测的就是ISP的缓存DNS的服务器。在这一般都能找到相应的缓存记录。

递归搜索--你的ISP的DNS服务器从根域名服务器开始进行递归搜索,从.com顶级域名服务器到facebook的域名服务器。一般DNS的缓存

中会有.com域名服务器中的域名,所以到顶级服务器的匹配过程不是那么必要了。

但是,DNS有一点令人担忧,像wikipedia.org或者facebook.com这样的整个域名看上去就对应着一个单独的IP地址,还好有几种方法可以消除这个瓶颈:

循环DNS:是DNS查找时返回多个IP时的解决方案。举例来说,facebook.com实际上就对应了4个IP地址。

负载平衡器:是以一个特定IP地址进行侦听并将网络请求转发到集群服务器上的硬件设备。一些大型的站点一般都会使用这种昂贵的高性能复杂平衡器。

地理DNS根据用户所处的地理位置,通过把域名映射到多个不同的IP地址提高可扩展性。这样不同的服务器不能够更新同步状态,但映射静态内容的话非常好。

Anycast 是一个IP地址映射到多个物理主机的路由技术。美中不足,Anycast与TCP协议适应的不是很好,所以很少应用在那些方案中。

大多数DNS服务器使用Anycast来请求高效低延迟的DNS查找。

3.浏览器给web服务器发送一个HTTP请求

因为像Facebook主页这样的动态页面,打开后在浏览器缓存中很快甚至马上就会过期,毫无疑问他们不能从缓存中读取,所以,浏览器将把一个请求发送到Facebook所在的服务器:

4.facebook服务的永久重定向响应

5.浏览器跟踪重定向地址

6.服务器“处理”请求

7.服务器发回一个HTML响应

8.浏览器开始显示HTML

9.浏览器发送获取嵌入在HTML中的对象

10.浏览器发送异步(Ajax)请求

5.应用题

(1)创建一个js类,模拟实现方法的重载。

function A(){

this.a=null;

this.b=null;

}

var pro = A.prototype;

//模拟重载

pro.add = function(){

if(arguments.length==1){

console.log(arguments[0]);

}

if(arguments.length==2){

result = arguments[0]+arguments[1];

console.log(result);

}

}

var a = new A();

a.add(1);

a.add(1,2);

(2)JS中会有排序的需求,用jS实现一个标准的排序算法,对一个数字数组进行由小到大的排列。

var b = [2,3,8,3,1,5];

sort1(b);

console.log(b);

function sort1(a){

var i,j;

for(i=0;i<a.length;i++){

var temp;

var flag=0;

for(j=0;j<a.length;j++){

if(a[j]>a[j+1]){

temp = a[j+1];

a[j+1]=a[j];

a[j]=temp;

flag=1;

}

}

if(flag==0)break;

}

return a;

}

4.编程题

用HTML、css和js魔力实现下拉框,使得下拉框在各个浏览器的样式和行为完全一致。说出你的设计方案,并且重点说明功能设计实现时要考虑的因素。

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>Document</title>

<style type="text/css">

p,ul {

margin: 0;

}

ul {

padding: 0;

}

a {

text-decoration: none;

color: #000;

}

.btn {

border: 1px solid #000;

width: 100px;

text-align: center;

margin-bottom: 0.5px;

cursor: pointer;

padding: 2px 0;

}

.down {

width: 100px;

border: 1px solid #000;

text-align: center;

display: block;

}

.l_sm {

border: 1px solid grey;

list-style: none;

padding: 2px 0;

cursor: pointer;

}

.l_sm:hover {

}

</style>

</head>

<body>

<p class="btn" id="btn">点击</p>

<ul class="down" id="show" >

<li class="l_sm"><a href="#">第一项</a></li>

<li class="l_sm"><a href="#">第二项</a></li>

<li class="l_sm"><a href="#">第三项</a></li>

<li class="l_sm"><a href="#">第四项</a></li>

</ul>

<script type="text/javascript">

var btn = document.getElementById("btn");

var show = document.getElementById("show");

btn.addEventListener("click",function(){

var style = window.getComputedStyle(show).display;

if(style=="block"){

show.style.display = "none";

}else{

show.style.display = "block";

}

});

</script>

</body>

</html>

时间: 2024-08-08 13:59:10

58前端内推笔试2017(含答案)的相关文章

WYYD2017内推笔试回顾

这次内推的笔试考试感觉就是挺杂的,考题没有区分大的方向.ios和研发工程师的题目没区别.编程题也是一样,就是顺序换了下,所以编程题也没有难度梯度的区分,有些不科学.扯这么多其实感觉还是自己的基础不扎实,得加油了. 下面回忆一下考到了什么. 选择题(单选和多选,2分×15题=30分) 这边只能大致回忆起一些知识点了 1.Linux下管道命令来统计for循环的次数会用到哪些指令? (多选)选项: cat.wc.grep.vi 2.解释和编译的比较,效率,是否生成本地文件,是否独立于机器等 3.B-数

【北京/上海/南京】【部门直推】【可查询】【实习&amp;社招】字节跳动数据平台前端内推

重要信息,写在前面  [投递邮箱][email protected] [微信扫码] 2019接近尾声,最后上车的机会,一定要抓住!!! 投过字节跳动,面试挂过不要紧!部门直推,捞起再面! 实习同学对项目经验没有强制要求.聪明.基础过硬.对操作系统.计算机网络.数据结构.算法有一定的理解即可! 21届及以后的同学欢迎来实习,实习转正so easy,妈妈再也不用担心我的offer! 我们是干啥的         数据平台为大数据的全生命周期提供服务,覆盖数据产生,传输,建模,统计分析,实验评估,可视

网易2017校招内推笔试练习卷编程题1--1019.数字黑洞20

给定任一个各位数字不完全相同的4位正整数,如果我们先把4个数字按非递增排序,再按非递减排序,然后用第1个数字减第2个数字,将得到 一个新的数字.一直重复这样做,我们很快会停在有"数字黑洞"之称的6174,这个神奇的数字也叫Kaprekar常数. 例如,我们从6767开始,将得到 7766 - 6677 = 1089 9810 - 0189 = 9621 9621 - 1269 = 8352 8532 - 2358 = 6174 7641 - 1467 = 6174 ... ... 现给

网易2017校招内推笔试练习卷编程题2--出专辑

你作为一名出道的歌手终于要出自己的第一份专辑了,你计划收录 n 首歌而且每首歌的长度都是 s 秒,每首歌必须完整地收录于一张 CD 当中.每张 CD 的容量长度都是 L 秒,而且你至少得保证同一张 CD 内相邻两首歌中间至少要隔 1 秒.为了辟邪,你决定任意一张 CD 内的歌数不能被 13 这个数字整除,那么请问你出这张专辑至少需要多少张 CD ? 输入描述: 每组测试用例仅包含一组数据,每组数据第一行为三个正整数 n, s, L. 保证 n ≤ 100 , s ≤ L ≤ 10000 输出描述

2017 网易有道研发内推笔试编程题 8.17

15个选择题,每个2分,3个程序题,每个30.

2016奇虎360研发工程师内推笔试编程题:找镇长

挑选镇长 360员工桂最近申请了一个长假,一个人背着包出去自助游了. 路上,他经过了一个小镇,发现小镇的人们都围在一棵树下争吵.桂上前询问情况,得知小镇的人们正缺一个镇长,他们希望能选一个知名又公正的镇长,即,大家希望能选出一个人,所有人都认识他,但同时他不认识镇上除自己以外的其他人(在此,我们默认每个人自己认识自己).可是小镇里的人太多了,一下子大家谁也说服不了谁. “这简单啊.”桂表示.于是他一下子统计出来了镇上人们相互之间的认识关系,并且一下子找到了合适的镇长人选. 现在你手上也拿到了这样

阿里前端内推笔试题

利用面向对象思想完成买家信息删除功能,每一条信息包含: 姓名(name) 性别(sex) 电话号码(number) 省份(province) 实现以下要求: 不能借用任何第三方库,需要使用原生代码实现. 结合给出的基本代码结构,在下方2处code here补充代码,完成买家信息的删除功能,注意此页面要在手机上清晰显示. js代码可以任意调整,例如和使用es6代码完成. <!DOCTYPE html> <html> <head> <meta charset=&quo

360 内推笔试 - 挑选镇长

试题来源:http://www.nowcoder.com/question/next?pid=151724&qid=25196&tid=718946 360员工桂最近申请了一个长假,一个人背着包出去自助游了. 路上,他经过了一个小镇,发现小镇的人们都围在一棵树下争吵.桂上前询问情况,得知小镇的人们正缺一个镇长,他们希望能选一个知名又公正的镇长,即,大家希望能选出一个人,所有人都认识他,但同时他不认识镇上除自己以外的其他人(在此,我们默认每个人自己认识自己).可是小镇里的人太多了,一下子大家

[遇见时光]内推笔试-藏宝图-java实现

牛牛拿到了一个藏宝图,顺着藏宝图的指示,牛牛发现了一个藏宝盒,藏宝盒上有一个机关,机关每次会显示两个字符串 s 和 t,根据古老的传说,牛牛需要每次都回答 t 是否是 s 的子序列.注意,子序列不要求在原字符串中是连续的,例如串 abc,它的子序列就有 {空串, a, b, c, ab, ac, bc, abc} 8 种. 输入描述: 每个输入包含一个测试用例.每个测试用例包含两行长度不超过 10 的不包含空格的可见 ASCII 字符串. 输出描述: 输出一行 “Yes” 或者 “No” 表示结