2019年阿里最新前端工程师面试题及答案题
一、单选题(共21题,每题5分)
1.为每一个指定元素的指定事件(像click)绑定一个事件处理器函数,下面哪个是用来实现该功能的?
a、trigger (type)
b、bind(type)
c、one(type)
d、bind
参考答案:b
答案解析:暂无
2.哪一个html盒模型中的border的正确写法?
a、p{ border:5px solid red;}
b、p{border:5px <br> red solid; }
c、p{border: red solid 5px; }
d、p{border: solid red 5px; }
参考答案:a
答案解析:为了代码的可读性,建议按照,border-width,border-style,border-color,的顺序书写。
但其实顺序调换是不影响呈现的
3.关于适配器模式,说法错误的是?
a、适配器继承或依赖已有的对象,实现想要的目标接口
b、主要解决在软件系统中,常常要将一些"现存的对象"放到新的环境中,而新环境要求的接口是现对象不能满足的
c、定义了算法家族,分别封装起来,让他们之间可以相互替换,此模式让算法的变化不会影响到使用算法的客户
d、将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
参考答案:c
答案解析:将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作 适配器继承或依赖已有的对象,实现想要的目标接口 主要解决在软件系统中,常常要将一些"现存的对象"放到新的环境中,而新环境要求的接口是现对象不能满足的
4.以下几种在html文档中通过css的方式将文档颜色设置为红色背景错误的是:( )
a、内联样式表:<body style=”background-color:red”></body>
b、嵌入样式表:<style> body { background-color:red } </style>
c、外部样式表:在当前目录下创 建一个test.css文件,在文件中声明一条<style> body { background-color:red } </style>代码,并在html文档中通过<link style=”text/css” rel=”stylesheet” href=”test.css”>将其链接到本文档中使用
d、输入样式表:在当前目录下创建一个test.css文件,在文件中声明一条body { background-color:red } 代码,并在html文档中通过<style>@import url(test.css);</style>输入到本文档中使用
参考答案:c
答案解析:暂无
5.在 html5 中,哪个方法用于获得用户的当前位置?
a、getposition()
b、getcurrentposition()
c、getuserposition()
d、getlocation()
参考答案:b
答案解析:getcurrentposition()获取用户当前位置放入一个值中保存,getlocation()地图定位
6.对于下拉菜单,错误的是?
pre class="prettyprint"><div class="dropdown"> <button class="btn btn-" tabindex="-1">separated link</a></li> defaultdropdowtoggle" data-toggle="dropdown" id="dropdownmenu1" type="button"> dropdown <span class="caret"></span> </button> <ul aria-labelledby="dropdownmenu1" class="dropdown-menu" role="menu"><li role="presentation"><#" role="menuitem" tabindex="-1">action</a></li> <li r"presentation"><a href="#" role="menuitem" tabindex="-1">anotheaction</a></li> <li rolef="#" role="menuitem" tabindex="-1">something else here</a></li> <li role="presentation"><a href="#" role="menuitem" tabindex="-1">separated link</a></li> <pre class="prettyprint"><div class="dropdown"> <button class="btn btn-default dropdown-toggle" data-toggle="dropdown" id="dropdownmenu1" type="button"> dropdown <span class="caret"></span> </button> <ul aria-labelledby="dropdownmenu1" class="dropdown-menu" role="menu"><li role="presentation"><a href="#" role="menuitem" tabindex="-1">action</a></li> <li role="presentation"><a href="#" role="menuitem" tabindex="-1">another action</a></li> <li role="presentation"><a href="#" role="menuitem" tabindex="-1">something else here</a></li> <li role="presentation"><a href="#" role="menuitem
a、表示了一个有五个下拉选项的下拉菜单
b、<span class="caret"></span>可以去掉而不影响功能
c、可以加入pull-right使菜单右对齐
d、可加入dropdown-menu-right使菜单右对齐
参考答案:a
答案解析:这道题我一眼就看出a有错了,可是还是让我纠结了好久,怎么会有这么低级的问题,空城计吗
7.下面关于 css 布局的描述,不正确的是?( )
下面关于css布局的描述,不正确的是?()
a、块级元素实际占用的宽度与它的 width 属性有关;
b、块级元素实际占用的宽度与它的 border 属性有关;
c、块级元素实际占用的宽度与它的 padding 属性有关;
d、块级元素实际占用的宽度与它的 background 属性有关。
参考答案:d
答案解析:d 块级元素实际占用的宽度=width+border*2+padding*2+margin*2 所以与width border padding margin有关,与background无关
8.以下javascript代码输出的结果是?
var a = '5' + 3var b = '5' - 3
console.log(a, b)
javascript
a、53, 2
b、8, 2
c、error
d、都不对
参考答案:a
答案解析:这是一道隐式类型转换的题 加法: 加法运算中,如果有一个操作值为字符串类型,则将另一个操作值转换为字符串,最后连接起来 减法: 如果操作值之一不是数值,则被隐式调用number()函数进行转换 所以第一行结果为字符串运算,为'53'。第二行结果为2,选a9.在jquery中,有以下代码, 以下说法正确的是 ?
$(".btn").click(function () {
var json = [{"s_name": "周颜", "s_sex": "男"}, {"s_name": "周颖", "s_sex": "女"}];
$.each(json, function (index, s) {
alert(s.s_name + "," + s.s_sex);//语句1
});});
javascript
a、此代码不会正常运行
b、语句1会被执行1次
c、语句1会被执行2次
d、$.each()函数的用法有误
10.虽然不同的操作系统可能装有不同的浏览器。但是这些浏览器都符合( )协议。
a、snmp
b、 http
c、html
d、smtp
参考答案:b
答案解析:
简单网络管理协议(snmp),由一组网络管理的标准组成,该协议能够支持网络管理
系统,用以监测连接到网络上的设备是否有任何引起管理上关注的情况。
http协议(hypertext transfer protocol,超文本传输协议)是客户端浏览器或其他程序与web服务器之间的应用层通信协议。
超文本标记语言(html),标准通用标记语言下的一个应用,也是一种规范,一种标准,它通过标记符号来标记要显示的网页中的各个部分。网页的本质就是超级文本标记语言,通过结合使用其他的web技术(如:脚本语言、公共网关接口、组件等),可以创造出功能强大的网页。
smtp(simple mail transfer protocol,简单邮件传输协议),它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。smtp协议属于tcp/ip协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。
11.css属性position的值不包含
a、absolute
b、inherit
c、box
d、static
参考答案:c
答案解析:absolute,生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位; 元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定; fixed,生成绝对定位的元素,相对于浏览器窗口进行定位; 元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定。 relative,生成相对定位的元素,相对于其正常位置进行定位; static,默认值,没有定位,元素出现在正常的流中(忽略 top, bottom, left, right 或者 z-index 声明); inherit,规定应该从父元素继承 position 属性的值。.
12.以下全部属于块级标签的是?
a、<div><p><input><span><img>
b、<div><h1><p><img><dl>
c、<span><h1><p><img><dl>
d、<div><p><form><ul><h1>
参考答案:d
答案解析:
13.关于下面html代码,说法正确的是?
<table border="10"> <tr> <td align="center" colspan="2">公司</td> </tr> <tr> <td align="center" rowspan="2">名字</td> <td align="center">百度</td> </tr> <tr> <td align="center" colspan="2">百度</td> </tr> <table></table>
</table
html
a、该表格共有2行3列
b、该表格的边框宽度为10毫米
c、该表格中的文字均居中显示
d、"公司"单元格跨2行
14.基于哈希算法在信息安全中主要应用在?
(1) 文件校验
(2) 数字签名
(3) 鉴权协议
a、(1)(2)
b、(1)(3)
c、(2)(3)
d、(1)(2)(3)
参考答案:d
答案解析:hash算法在信息安全方面的应用主要体现在以下的3个方面: (1)文件校验 我们比较熟悉的校验算法有奇偶校验和crc校验,这2种校验并没有抗数据篡改的能力,它们一定程度上能检测并纠正数据传输中的信道误码,但却不能防止对数据的恶意破坏。 md5 hash算法的"数字指纹"特性,使它成为目前应用最广泛的一种文件完整性校验和(checksum)算法,不少unix系统有提供计算md5 checksum的命令。 (2)数字签名 hash 算法也是现代密码体系中的一个重要组成部分。由于非对称算法的运算速度较慢,所以在数字签名协议中,单向散列函数扮演了一个重要的角色。对 hash 值,又称"数字摘要"进行数字签名,在统计上可以认为与对文件本身进行数字签名是等效的。而且这样的协议还有其他的优点。 (3) 鉴权协议 如下的鉴权协议又被称作挑战--认证模式:在传输信道是可被侦听,但不可被篡改的情况下,这是一种简单而安全的方法。以上就是一些关于hash以及其相关的一些基本预备知识。
15.下面哪条声明能固定背景图片()
a、background-attachment:fixed;
b、background-attachment:scroll;
c、background-origin: initial;
d、background-clip: initial;
参考答案:a
答案解析:
background-attachment
有三个值,scroll是默认值,背景图像会随着页面其余部分的滚动而移动。
fixed当页面的其余部分滚动时,背景图像不会移动。
inherit规定应该从父元素继承 background-attachment 属性的设置。
background-origin
属性规定 background-position 属性相对于什么位置来定位。
background-clip
属性规定背景的绘制区域。
16.以下选项不能够正确地得到这个标签:()
<input class="btn" id="btngo" type="button" value="单击我"></input>
a、 $("#btngo")
b、 $(".btngo")
c、 $(".btn")
d、 $("input[type='button']")
参考答案:b
答案解析:注意是题目是选不能
17.在jquery中想要实现通过远程http get请求载入信息功能的是下面的哪一下事件?
a、$.ajax()
b、load(url)
c、$.get(url)
d、$. getscript(url)
18.在进行面向对象设计时,采用设计模式能够( ) 。
a、复用相似问题的相同解决方案
b、改善代码的平台可移植性
c、改善代码的可理解性
d、增强软件的易安装性
19.标记符title是放在以下哪个标记符之间的?( )
a、html与html
b、head与head
c、body与body
d、head与body
参考答案:b
20.如果在 html 页面中包含如下图片标签,则选项中的()语句能够实现隐藏该图片的功能。
<img id=”pic” src=”sunset.jpg” width=”400” height=”300”>
a、document.getelementbyid(“pic”).style.display=”visible”;
b、document.getelementbyid(“pic”).style.display=”disvisible”;
c、document.getelementbyid(“pic”).style.display=”block”;
d、document.getelementbyid(“pic”).style.display=”none”;
参考答案:d
答案解析:d,display没有visible这个, visibility才有这个值
21.以下 jquery 对象方法中,使用了事件委托的是
a、bind
b、mousedown
c、click
d、change
e、on
参考答案:e
答案解析:
jquery中实现事件委托的三种方法:
$.on: 基本用法:$('.parent').on('click', 'a', function () { console.log('click event on tag a'); }),它是 .parent 元素之下的 a 元素的事件代理到$('.parent')之上,只要在这个元素上有点击事件,就会自动寻找到.parent元素下的a元素,然后响应事件;
$.delegate: 基本用法:$('.parent').delegate('a', 'click', function () { console.log('click event on tag a'); }),同上,并且还有相对应的$.delegate来删除代理的事件;
$.live: 基本使用方法:$('a', $('.parent')).live('click', function () { console.log('click event on tag a'); }),同上,然而如果没有传入父层元素$(.parent),那事件会默认委托到$(document)上;(已废除)
事件委托原理:
事件委托是通过事件冒泡的原理,利用父级去触发子级的事件。
如果不用事件委托,将ul下每一个li都去添加click事件监听,非常麻烦,而且对于内存消耗是非常大的,效率上需要消耗很多性能;
另外就是如果通过js动态创建的子节点,需要重新绑定事件。
而利用事件委托的话,只需要给父级绑定一个事件监听,即可让每个li都绑定上相应的事件,让你避免对特定的每个节点添加事件监听器;事件监听器是被添加到它们的父元素上。事件监听器会分析从子元素冒泡上来的事件,找到是哪个子元素的事件。
二、多选题(共9题,每题5分)
1.当元素的一个继承属性没有指定值时,则取父元素的同属性的计算值,以下哪些不是...
当元素的一个继承属性没有指定值时,则取父元素的同属性的计算值,以下哪些不是css中的继承属性?
a、color
b、display
c、border-style
d、text-align
参考答案:b,c
答案解析:
不可继承:display,margin,border,padding,background,height,width,position
2.在下面的标签中哪些是struts标签
a、html:form
b、html:text
c、html:errors
d、html:message
参考答案:a,b,c,d
答案解析:暂无
3.下面有关html结构描述正确的有?
a、<ul> <li> </li> </ul>
b、<ol> <li> </li> </ol>
c、<dl><dt><dd></dd></dt></dl>
d、<table> <tr> <td></td> </tr> </table>
参考答案:a,b,d
4.ruby中, 下面定义一个正则表达式正确的方法是()
a、re = /\w+/
b、re = //usr/local?/etc/
c、re = %r{/usr/local?/etc}
d、re = regexp.escape("usr/local/etc")
参考答案:a,c答案解析:暂无
5.哪些是正确的bootstrap辅助类
a、text-muted
b、text-success
c、text-info
d、text-warning
参考答案:a,b,c,d 。答案解析:.text-muted:文字的颜色换成灰色 /.text-primary:文字的颜色变成蓝色 / .text-success:文字的颜色变成绿色 /.text-info:文字的颜色变成暗蓝色 /.text-warning:文字颜色变成暗黄色 /.text-danger:文字的颜色变成红色
6.下列哪些是块级元素()
a、input
b、ul
c、hr
d、li
e、div
f、form
参考答案:b,c,d,e,f
答案解析:
(1)行内元素有:a b span img input select strong
(2)块级元素有:div ul ol li dl dt dd h1 h2 h3 h4…p
(3)常见的空元素:
<div></div> <span></span><input></input><link></link><meta></meta><span> </span>
鲜为人知的是:
<area></area><base></base><col></col><command><embed><keygen><param></param><source><track><wbr></wbr></track></source></keygen></embed></command>
7.以下选项正确的是
a、<p />
b、<br />
c、<hr />
d、<img />
8关于web 语义化的说法,正确的有?
a、语义化的含义就是用正确的标签做正确的事情
b、语义化让页面的内容结构化,结构更清晰
c、语义化便于对浏览器、便于代码阅读、便于维护
d、语义化便于seo, 页面中多放置一些h1标签,会提高网页的排名
9.以下标签中,默认是块级元素的标签有:
a、span
b、div
c、p
d、img
推荐阅读: