码迷,mamicode.com
首页 > 其他好文 > 详细

京东前端在线笔试

时间:2017-08-24 00:07:20      阅读:200      评论:0      收藏:0      [点我收藏+]

标签:结束   内容   调用   ice   问题分析   这一   正是   img   server   

1、 MySQL的HASH索引是什么

        其实,hash就是一种(key=>value)形式的键值对,如数学中的函数映射,允许多个key对应相同的value,但不允许一个key对应多个value。正是由于这个特性,hash很适合做索引,为某一列或几列建立hash索引,就会利用这一列或几列的值通过一定的算法计算出一个hash值,对应一行或几行数据(这里在概念上和函数映射有区别,不要混淆)。在java语言中,每个类都有自己的hashcode()方法,没有显示定义的都继承自object类,该方法使得每一个对象都是唯一的,在进行对象间equal比较,和序列化传输中起到了很重要的作用。

2、 输入0和非0开头的数字,其正则表达式是

3、 判断一个序列是否为堆

答:进行二叉树进行排序,判断是否孩子结点都大于父节点都大于称为大根堆,或者孩子结点都小于父结点称为小根堆。

4、 js开箱即用的小部件和UI部件是

答:开箱即用的小部件有ExtJS、YUI;开箱不即用的部件有Prototype、jQuery、MooTools

5、 Js文本域支持的事件有,题目选出不支持的

tabindex, accesskey, onfocus, onblur, onselect, onchange,
onclick, ondblclick, onmousedown, onmouseup, onmouseover,
onmousemove, onmouseout, onkeypress, onkeydown, onkeyup

6、 abc +*代表的表达式

参考:http://blog.csdn.net/antineutrino/article/details/6763722/

举例:
(3 + 4) × 5 - 6 就是中缀表达式
- × + 3 4 5 6 前缀表达式
3 4 + 5 × 6 - 后缀表达式

中缀表达式:常用的算术表示形式

前缀表达式(前缀记法、波兰式)

前缀表达式的运算符位于操作数之前。

前缀表达式的计算机求值:
从右至左扫描表达式,遇到数字时,将数字压入堆栈,遇到运算符时,弹出栈顶的两个数,用运算符对它们做相应的计算(栈顶元素 op次顶元素),并将结果入栈;重复上述过程直到表达式最左端,最后运算得出的值即为表达式的结果。
例如前缀表达式“- × + 3 4 5 6”:
(1) 从右至左扫描,将6、5、4、3压入堆栈;
(2) 遇到+运算符,因此弹出3和4(3为栈顶元素,4为次顶元素,注意与后缀表达式做比较),计算出3+4的值,得7,再将7入栈;
(3) 接下来是×运算符,因此弹出7和5,计算出7×5=35,将35入栈;
(4) 最后是-运算符,计算出35-6的值,即29,由此得出最终结果。
可以看出,用计算机计算前缀表达式的值是很容易的。
后缀表达式(后缀记法、逆波兰式)
后缀表达式与前缀表达式类似,只是运算符位于操作数之后。
后缀表达式的计算机求值:
与前缀表达式类似,只是顺序是从左至右:
从左至右扫描表达式,遇到数字时,将数字压入堆栈,遇到运算符时,弹出栈顶的两个数,用运算符对它们做相应的计算(次顶元素 op 栈顶元素),并将结果入栈;重复上述过程直到表达式最右端,最后运算得出的值即为表达式的结果。
例如后缀表达式“3 4 + 5 × 6 -”:
(1) 从左至右扫描,将3和4压入堆栈;
(2) 遇到+运算符,因此弹出4和3(4为栈顶元素,3为次顶元素,注意与前缀表达式做比较),计算出3+4的值,得7,再将7入栈;
(3) 将5入栈;
(4) 接下来是×运算符,因此弹出5和7,计算出7×5=35,将35入栈;
(5) 将6入栈;
(6) 最后是-运算符,计算出35-6的值,即29,由此得出最终结果。

7、 基于比较的常用排序算法

选择排序、冒泡排序、插入排序、希尔排序、归并排序、快速排序、堆排序

8、 PDA分析图在功能、结构、在什么时期使用

PAD图(problem analysis diagram,问题分析图):

技术分享

与方框图一样,PAD图也只能描述结构化程序允许使用的几种基本结果。它用二维树形结构的图表示程序的控制流,以PAD图为基础,遵循机械的走树(Tree Walk)规则就能方便地编写出程序,用这种图转换为程序代码比较容易。

 

其特征为:

1)结构清晰,结构化程度高;

2)易于阅读

3)最左端的纵线是程序主干线,对应程序的第一层结构;每增一层PAD图向右扩展一条纵线,帮程序的纵线数等于程序层次数。

4)程序执行:从PAD图最左主干线上端结点开始,自上而下、自左向右依次执行,程序终止于最左主干线。

9、 DHCP向客户端发送的消息

    DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网网络协议,使用UDP协议工作,主要有两个用途:给内部网络或网络服务供应商自动分配IP地址,给用户或者内部网络管理员作为对所有计算机作中央管理的手段

    DHCP使用客户端/服务器模式,请求配置信息的计算机叫做DHCP客户端,而提供信息的叫做DHCP的服务器。DHCP为客户端分配地址的方法有三种:手工配置、自动配置、动态配置。

10、 SNMP报文共有哪几部分组成

由三部分组成:版本号、团体名、协议数据单元PDU

参考:http://blog.csdn.net/shanzhizi/article/details/11606767

11、 Vsftpd服务器流量的控制参数

12、 决策树对于噪声的敏感度小

13、 下列地址中哪个地址与86.32/12无法匹配

86.32/12的含义是前12位是网络地址,只需看IP地址的前12位是不是与之相同即可。

14、 已知文法G[S]

        S->AdB

        A->a|

        B->b|Bdb|

则G[S]的活前缀是:

15、 一个c语言程序在一台32位机器上运行,定义两个变量x,y,

其中x的数据类型为int,y的数据类型为float,已知x=2013,y=201.3,则在一个32bit的机器中执行下列表达式时,结果为真的有(BCD)这是一个多选题

Y =(float)(int)y

Y =(float)(double)y

X =(float)(int)x

X =(int)(float)x

编程题:1、求A,B两个集合的并集 ;                   还有一个编程题忘了,也不会做

1111111111

 

3、问答题

1、谈谈优雅降级和渐进增强的区别

答:渐进增强 progressive enhancement:针对低版本浏览器进行构建页面,保证最基本的功能,然后再针对高级浏览器进行效果、交互等改进和追加功能达到更好的用户体验。

  优雅降级 graceful degradation:一开始就构建完整的功能,然后再针对低版本浏览器进行兼容。

区别:优雅降级是从复杂的现状开始,并试图减少用户体验的供给,而渐进增强则是从一个非常基础的,能够起作用的版本开始,并不断扩充,以适应未来环境的需要。降级(功能衰减)意味着往回看;而渐进增强则意味着朝前看,同时保证其根基处于安全地带。

 

2、解释盒模型,行内元素与块级元素的概念

盒模型:盒模型是CSS的核心知识点之一,它指定元素如何显示以及如何相互交互。页面上的每个元素都被看成一个矩形框,这个框由元素的内容、内边距、边框和外边距组成。

块级元素:块状元素排斥其他元素与其位于同一行,可以设定元素的宽(width)和高(height),块级元素一般是其他元素的容器,可容纳块级元素和行内元素。常见的块级元素有div, p ,h1~h6等。

行内元素:行内元素不可以设置宽(width)和高(height),但可以与其他行内元素位于同一行,行内元素内一般不可以包含块级元素。行内元素的高度一般由元素内部的字体大小决定,宽度由内容的长度控制。常见的行内元素有a,span,em ,strong等。

3、简述cookies\sessionstoage和localstorage的区别

共同点:都是保存在浏览器端,且同源的。

区别:(1)存储位置不同,cookie数据始终在同源的http请求中携带(即使不需要),即cookie在浏览器和服务器间来回传递。而sessionStorage和localStorage不会自动把数据发给服务器,仅在本地保存。

(2) 存储大小限制也不同,cookie数据不能超过4k,同时因为每次http请求都会携带cookie,所以cookie只适合保存很小的数据,如会话标识。sessionStorage和localStorage虽然也有存储大小的限制,但比cookie大得多,可以达到5M或更大。

(3) 数据有效期不同,sessionStorage:仅在当前浏览器窗口关闭前有效,自然也就不可能持久保持;localStorage:始终有效,窗口或浏览器关闭也一直保存,因此用作持久数据;cookie只在设置的cookie过期时间之前一直有效,即使窗口或浏览器关闭。

(4) 作用域不同,sessionStorage不在不同的浏览器窗口中共享,即使是同一个页面;localStorage在所有同源窗口中都是共享的;cookie也是在所有同源窗口中都是共享的。

4、如何进行前端优化,简述几种常用的方法

第一:面向内容的优化
1. 减少 
HTTP 请求

   网页请求时将会频繁的与服务器建立连接,与释放连接,这必定会造成资源的浪费,且每个HTTP请求都会对服务器和浏览器产生性能负担。
2. 减少 DNS查找

DNS信息会保存在操作系统的DNS缓存中(如windows上的DNS Client Service)。大多数浏览器有自己的缓存,与操作系统的缓存有所不同。只要浏览器在自己的缓存上面保留DNS记录,它不会向操作系统请求DNS记录。

当我们在浏览器的地址栏输入网址(譬如: www.baidu.com) ,然后回车,回车这一瞬间到看到页面到底发生了什么呢?

域名解析 --> 发起TCP的3次握手-->建立TCP连接后发起http请求-->服务器响应http请求,浏览器得到html代码-->浏览器解析html代码,并请求html代码中的资源(如js、css、图片等)-->浏览器对页面进行渲染呈现给用户。
3. 避免重定向

  重定向用于将用户从一个URL重新路由到另一个URL。当页面发生了重定向,就会延迟整个HTML文档的传输。在HTML文档到达之前,页面中不会呈现任何东西,也没有任何组件会被下载。

常用的重定项类型:(1)301永久重定项(2)临时重定项(3)Not Modified
4. 使用 Ajax缓存

   Ajax在发送的数据成功后,会把请求的URL和返回的响应结果保存在缓存内,当下一次调用Ajax发送相同的请求时,它会直接从缓存中把数据取出来,这是为了提高页面的响应速度和用户体验。当前这要求两次请求URL完全相同,包括参数。这个时候,浏览器就不会与服务器交互。

   这种设计使客户端对一些静态页面内容的请求,比如图片,css文件,js脚本等,变得更加快捷,提高了页面的响应速度,也节省了网络通信资源。
5. 预先载入组件

资源预拉取(prefetch)则是另一种性能优化的技术。通过预拉取可以告诉浏览器用户在未来可能用到哪些资源。
7. 减少 DOM元素数量

考虑大量DOM元素中循环的性能开销,在循环结束时一次性写入。减少对DOM元素的查询和修改,查询时可将其赋值给局部变量。

第二:面向 Server

1. 压缩内容 (Gzip Components)
对于绝大多数站点,这都是必要的一步,能有效减轻网络流量压力。

2. 设置 Etags (Configure ETags)
对于 Etag,可能是多数网站维护者都会忽略的地方。在这一系列优化规则出现之前,可能互联网上绝大多数站点都对这个问题忽略了。

第三:面向cookies
1. 缩小 Cookie

如果需要用Cookie,那么应该尽可能使其体积小一些。

这样做的原因是:

如果对某个域(Domain)保存了Cookie,那么针对这个域的所有请求,都会发送这些所有的Cookie(哪怕当前请求根本用不着,例如针对图片的请求),大量地、重复地发送Cookie毫无疑问会增加网络的流量,并因此而降低请求被执行的性能。
2. 针对 Web组件使用域名无关性的

这个话题在此前针对 Web 图片服务器的讨论中曾经提及。这里说的 Web 组件(Component),多指静态文件,比如图片CSS等,客户端请求静态文件的时候,减少了Cookie的反复传输对主域名的影响。

5、如何设计开发一个图片轮播组件,简述要点或写代码。

京东前端在线笔试

标签:结束   内容   调用   ice   问题分析   这一   正是   img   server   

原文地址:http://www.cnblogs.com/ice-blog/p/7420633.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!