前端面试题2019年小米工程师面试题及答案解析

一、单选题(共24题,每题5分)

1.关于XSS的说法,错误的是

A、script,js,vbscript,flash

B、分类:反射,存储

C、是浏览器端代码注入,恶意的script,css,html代码被浏览器解析

D、PHP相关漏洞

参考答案:D

答案解析:是浏览器端代码注入,恶意的script,css,html代码被浏览器解析。 分类:反射,存储 script,flash

 

2.关于JSONP使用的说法错误的是:

A、可以实现跨域通信

B、基于 json 格式数据,兼容性好,简单易用

C、只支持跨域HTTP请求这种情况,不能解决不同域的两个页面之间进行JavaScript调用的问题

D、可以完美支持POST请求

参考答案:D

3.HTML页面中有如下结构的代码, 下列选项所示jQuery代码,不能够让汉字“四”的颜色变成红色的是?

A、  $("#header ul li:eq(3)").css("color","red");

B、  $("#header li:eq(3)").css("color","red");

C、  $("#header li:last").css("color","red");

D、  $("#header li:gt(3)").css("color","red");

参考答案:D

答案解析:

注意是选择不能

4.下面哪一种属于“creational”的设计模式?

A、Façade

B、Singleton

C、Bridge

D、Composite

E、上面都不是

参考答案:B

答案解析:

总体来说设计模式分为三大类:

创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。

结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。

行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。

 

5.站点首页最常用的文件名是( )。

A、index.html    

B、homepage.html   

C、resource.html

D、mainfrm.html

参考答案:A

答案解析:站点首页最常用的文件名是index.html,其次是default.html。

 

 

6.sessionStorage 保存数据的方法正确的是:

A、sessionStorage.setItem(“键值”,”键名”);

B、sessionStorage.saveItem(“键名”,”键值”);

C、sessionStorage.saveItem(“键值”,”键名”);

D、sessionStorage.setItem(“键名”,”键值”);

参考答案:D

答案解析:你只要记住两点,设置一般用 set 开头, 获取采用 get 开头; 对于键值的话,一般都是 (key,value)的形式; 所以选D

 

7.使用CSS声明一个关联样式选择器,以下几种HTML元素中的内容可以为红色字体的是: ( )

A、<div>内容</div>

B、<div><em><span>内容</span><em></div>

C、<span></div>内容</div></span>

D、以上都可以

8.JavaScript代码的用途描述错误的是()

A、JavaScript在网页制作中广泛使用

B、JavaScript是一种功能强大的弱类型语言

C、JavaScript是一种脚本语言,所以它一般没人用

D、avaScript是一种解释型脚本语言

 

 

9.下图所示为(44)设计模式,属于(45)设计模式,适用于(46)。

A、 表示对象的部分—整体层次结构时 

B、当一个对象必须通知其它对象,而它又不能假定其它对象是谁时 

C、当创建复杂对象的算法应该独立于该对象的组成部分及其装配方式时 

D、在需要比较通用和复杂的对象指针代替简单的指针时

 

10.数值数据在计算机内用二进制编码表示,常用的编码有()

A、补码

B、ASCII码

C、GB2312码

D、UFT-8码

参考答案:A

答案解析:原码、反码和补码

 

11.当使用HTML5的拖放API实现拖动时,需要监听”开始拖动”事件,此事件的...

当使用HTML5的拖放API实现拖动时,需要监听”开始拖动”事件,此事件的名称是:

A、dragstart

B、dragend

C、drop

D、mousedown

参考答案:A

答案解析:拖放是一种常见的特性,即抓取对象以后拖到另一个位置。 在 HTML5 中,拖放是标准的一部分,任何元素都能够拖放。 首先,为了使元素可拖动,把 draggable 属性设置为 true 拖动什么 - ondragstart 放到何处 -ondragover ondragover 事件规定在何处放置被拖动的数据。 进行放置 - ondrop 当放置被拖数据时,会发生 drop 事件

 

12.关于 css 布局中的 BFC ,描述错误的是

关于 css 布局中的 BFC ,描述错误的是

A、BFC的区域会与float的元素区域重叠

B、计算BFC的高度时,浮动子元素也参与计算

C、BFC就是页面上的一个隔离的独立容器,容器里面的子元素是不会影响到外面的元素

D、BFC意为”块级格式化上下文”

参考答案:A

答案解析:

百度了很多BFC的内容,总结了一篇笔记。 </http:>

 

13.TCP/IP协议栈中的位置(由上到下)?

A、TCP->IP->HTTP->数据链路层

B、IP->HTTP->TCP->数据链路层

C、HTTP->IP->TCP->数据链路层

D、HTTP->TCP->IP->数据链路层

参考答案:D

答案解析:HTTP协议通常承载于TCP协议之上,有时也承载于TLS或SSL协议层之上 正确排序为HTTP->TCP->IP->数据链路层

 

14.下面有关HTML的Doctype和严格模式与混杂模式的描述,错误的是?

A、声明位于文档中的最前面,处于  标签之前。告知浏览器的解析器,用什么文档类型 规范来解析这个文档

B、在标准模式中,浏览器根据规范呈现页面;在混杂模式中,页面以一种比较宽松的向后兼容的方式显示

C、DOCTYPE不存在或格式不正确会导致文档以标准模式呈现

D、浏览器根据DOCTYPE是否存在以及使用的哪种DTD来选择要使用的呈现方法

参考答案:C

答案解析:文档类型
DTD(文档类型定义)是一组机器可读的规则,他们定义 XML 或 HTML 的特定版本中允许有什么,不允许有什么。在解析网页时,浏览器将使用这些规则检查页面的有效性并且采取相应的措施。浏览器通过分析页面的 DOCTYPE 声明来了解要使用哪个 DTD ,由此知道要使用 HTML 的哪个版本。
DOCTYPE 当前有两种风格,严格( strict )和过渡( transitional )。过渡 DOCTYPE 的目的是帮助开发人员从老版本迁移到新版本。
如果发送具有正确的 MIME 类型的 XHTML 文档,理解 XML 的浏览器将不显示无效的页面。
浏览器模式
浏览器有两种呈现模式:标准模式和混杂模式(quirks mode)。在标准模式中,浏览器根据规范呈现页面;在混杂模式中,页面以一种比较宽松的向后兼容的方式显示。
DOCTYPE 切换
对于 HTML 4.01 文档,
包含严格 DTD 的 DOCTYPE 常常导致页面以标准模式呈现。
包含过度 DTD 和 URI 的 DOCTYPE 也导致页面以标准模式呈现。
但是有过度 DTD 而没有 URI 会导致页面以混杂模式呈现。
DOCTYPE 不存在或形式不正确会导致 HTML 和 XHTML 文档以混杂模式呈现

 

15.在css3中要使元素由一种样式转换成另一种样式,为元素添加效果的属性是?

A、animation

B、keyframes

C、flash

D、transform

 

16.HTTPS是一种安全的HTTP协议,它使用 ( ) 来保证信息安全?

A、IPSec 

B、SSL

C、SET

D、SSH

参考答案:B

答案解析:

SSL是解决传输层安全问题的一个主要协议,其设计的初衷是基于TCP协议之上提供可靠的端到端安全服务。应用SSL协议最广泛的是HTTPS,它为客户浏览器和Web服务器之间交换信息提供安全通信支持。它使用TCP的443端口发送和接收报文。

 

17.下列哪一项不是HTML5中新增加的标签?

A、nav

B、article

C、caption

D、video

 

18.下列jQuery事件绑定正确的是____。

A、$(‘#demo’).bind(‘click’,function(){})

B、$(‘#demo’).click(function() {})

C、$(‘#demo’).on(‘click’,function() {})

D、$(‘#demo’).one(‘click’,function() {})

参考答案:A

答案解析:

.bind( eventType [,eventData ],handler(eventObject) )

为一个元素绑定一个事件处理程序。

.on( events [,selector ] [,data ],handler(eventObject) )

在选定的元素上绑定一个或多个事件处理函数。

.one( events [,handler(eventObject) )

附加一个处理事件到元素。处理函数在每个元素上最多执行一次。

 

19.在jquery中,如果想要获取当前窗口的宽度值,下面哪个是实现该功能的?

A、width()

B、width(val)

C、width

D、innerWidth()

 

20.下面Http协议请求方式中不包括?

A、OPTIONS

B、HEAD

C、DELETE

D、SET

 

21.jQuery 对象的方法 get() 做什么?

A、触发一个GET OBJECT请求

B、返回一个对象

C、返回存在jQuery对象中的DOM元素

D、触发一个GET AJAX请求

 

 22.以下关于HTTP method 的说法,错误的是?

A、一台服务器要与HTTP1.1兼容,只要为资源实现GET和HEAD方法即可

B、PUT让服务器用请求的主体部分来创建一个由所请求的URL命名的新文档,或者,如果那个URL已经存在的话,就用干这个主体替代它

C、POST起初是用来向服务器输入数据的。实际上,通常会用它来支持HTML的表单。表单中填好的数据通常会被送给服务器,然后由服务器将其发送到要去的地方。

D、TRACE方法请求web服务器告知其支持的各种功能。可以查询服务器支持哪些方法或者对某些特殊资源支持哪些方法。

 

23.当表单中包含文件上传控件时,需要将enctype设置为()

A、application/x-www-form-urlencoded

B、multipart/form-data

C、text/explain

D、file-data

 

24.哪一个不是浏览器默认的天生inline-block标签(拥有内在尺寸,可设置高宽,不会自动换行)?

A、<button>

B、<input>

C、<label>

D、<img>

 

二、多选题(共6题,每题5分)

1.JavaScript函数内部arguments变量的说法,正确的有?

A、arguments所有函数中都包含的一个局部变量,是一个类数组对象,对应函数调用时的实参,如果函数定义同名参数会在调用时覆盖默认对象

B、arguments[index]分别对应函数调用时的实参,并且通过arguments修改实参时会同时修改实参

C、arguments.callee为当前正在执行的函数本身,使用这个属性进行递归调用时需注意this的变化

D、arguments.length为实参的个数(Function.length表示形参长度)

参考答案:A,B,C,D

答案解析:

函数内部arguments变量有哪些特性,有哪些属性,如何将它转换为数组
arguments所有函数中都包含的一个局部变量,是一个类数组对象,对应函数调用时的实参。如果函数定义同名参数会在调用时覆盖默认对象
arguments[index]分别对应函数调用时的实参,并且通过arguments修改实参时会同时修改实参
arguments.length为实参的个数(Function.length表示形参长度)
arguments.callee为当前正在执行的函数本身,使用这个属性进行递归调用时需注意this的变化
arguments.caller为调用当前函数的函数(已被遗弃)
转换为数组:var args = Array.prototype.slice.call(arguments,0);
 

2.下列说法正确的是()

A、display: none;不为被隐藏的对象保留其物理空间;

B、visibility:hidden;所占据的空间位置仍然存在,仅为视觉上的完全透明;

C、visibility:hidden;产生reflow和repaint(回流与重绘);

D、visibility:hidden;与display: none;两者没有本质上的区别;

参考答案:A,B

答案解析:

 

 

3.关于栅格系统,以下说法正确的是

A、会有自动的padding样式

B、会有自动的margin样式

C、其字体默认为14px

D、其box-sizing默认为border-box

参考答案:A,D

答案解析:

此题有极大的问题。栅格系统是把网页分为 16 12 24栏。 只能要很好的划分就好。有必要一定要创建间隔吗。为了好理解我们创建一个10栏的栅格化。那么每栏宽度10%。没有列间隔。你能说他不叫栅格系统吗?

 

4.假设MySQL数据库表结构如下,哪些sql语句查询能较好的利用索引?

create table T{ k int unsigned not null auto\_increment,a date,b varchar(24),c int,d varchar(24),primary key(k),unique key a\_index (a DESC,b DESC),key k1(b),key k2(c),key k3(d) );

A、select b from WHERE b like 'aaa%';

B、select a,b from T WHERE a='2015-10-25' ORDER BY b ASC,c ASC;

C、select a,b,c from T WHERE a='2015-10-25' ORDER BY b ASC;

D、select a,c from T WHERE a='2015-10-25' ORDER BY a,b;

参考答案:A,D

答案解析:

题目中的索引b是降序,而B,C两个选项都是升序,故会导致效率降低。而A,D两个选项没有指定升序降序,故会按照其定义的索引a desc,b desc 来进行操作,故而效率较高。所以选A,D。

 

5.下列哪些是正确的引入CSS文件到html中的方式? ()

A、<link rel="stylesheet" type="text/css" href="test.css">

B、<link rel="stylesheet" type="text/css" src="mystyle.css">

C、<style type=”text/css”>body{color:red}</style>

D、<style type=“text/css" src="test.css"></style>

 

 

6.可以包含在HTML网页head标签中的有

A、<title>

B、<meta>

C、<body>

D、<link>

 

 

 



版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


1==&gt;简述一下src与href的区别 src用于替换当前元素; href用于在当前文档和引用资源之间确立联系 2==&gt;、谈谈以前端角度出发做好SEO需要考虑什么? a.&#160;了解搜
什么是window对象?什么是document对象? window对象代表浏览器中打开的一个窗口。 document对象代表整个html文档。实际上, document对象是window对象的一个属性
1 》vue-router有哪几种导航钩子? 第一种:是全局导航钩子:router.beforeEach(to,from,next) 第二种:&#160;组件内的钩子 beforeRouteEnter
1=&gt;为什么data是一个函数 【理解】 组件的data写成一个函数, 这样每复用一次组件,就会返回一分新的data。 也就说:给每个组件实例创建一个私有的数据空间。 各个组件维护各自的数据。
01 vue3的新特征 1.组合式API. setUp作为组合函数的入口函数 2.Teleport 传送门 3.片段 template下可以有多个标签 4.用于创建自定义渲染器。我的理解是 creat
// var&#160;arr=[1,2,23,23,4,5,5]; // var&#160;newarr=new&#160;Set(arr);&#160;//去重 // console.log([.
摆好姿势 摆好姿势 如何使下面的等式成立 if(a==1&amp;&amp;a==3&amp;a==5){ console.log(666) } var a=[1,3,5] a.join=a.shif
1=&gt;为什么data是一个函数 【理解】 ok 每复用一次组件,就会返回一分新的data。 也就说:【每个组件实例创建】一个【私有】的数据空间。各个组件维护各自的数据。 如果单纯的写成对象形式,
以下是收集一些面试中经常会遇到的经典面试题以及自己面试过程中无法解决的问题,通过对知识的整理以及经验的总结,重新巩固自身的前端基础知识,如有错误或更好的答案,欢迎指正。:) 在网页中,一个元素占有空间
1 Action是不是线程安全的?如果不是 有什么方式可以保证Action的线程安全?如果是,说明原因不是声明局部变量,或者扩展RequestProcessor,让每次都创建一个Action,或者在s
解决js兼容性问题使用 event对象 function eventHandler(event) { event = event || window.event} 获取滚动条属性 var scrollTop = document.documentElment.scrollTop || document.body.scrollTop
浏览器的内核 IE: trident内核,Firefox:gecko内核,Safari:webkit内核,Opera:以前是presto内核,Opera现已改用Google Chrome的Blink内核,Chrome:Blink(基于webkit,Google与Opera Software共同开发) HTML中的Doctype有什么作用 此标签可告知浏览器文档使用哪种HTML或XHTML规范。(重点:告诉浏览器按照何种规范解析页面) div+css的布局较table布局有什么...
如何创建函数第一种(函数声明): function sum1(num1,num2){ return num1+num2; } 第二种(函数表达式): var sum2 = function(num1,num2){ return num1+num2; } 第三种(函数对象方式): var sum3 = new Function("num1","num2","return num1+num2");三种弹窗的单词以及三种弹窗的功能1.alert //弹出对话框并输出一段提示信...
js的垃圾回收机制是什么原理垃圾回收机制有两种方法第一种是标记清除法:当变量进入执行环境时,就标记这个变量为”进入环境”,当变量离开环境的时候,则将其标记为”离开环境”,垃圾收集器在运行的时候会给储存在内存中的所有变量都加上标记,然后它会去掉环境中的标量以及被环境中的变量引用的标记,而在此之后再被加上标记的变量将被视为准备删除的变量,原因是环境中的变量已经无法访问到这些变量了,最后,垃圾收集器完成内存清除工作,销毁那些带标记的值,并回收他们所占用的内存空间 第二种是引用计数法:当声明了一个变量并将
Ajax 是什么? 如何创建一个Ajax?AJAX全称是Asychronous JavaScript And Xml(异步的 JavaScript 和 XML)它的作用是用来实现客户端与服务器端的异步通信效果,实现页面的局部刷新,早期的浏览器并不能原生支持ajax,可以使用隐藏帧(iframe)方式变相实现异步效果,后来的浏览器提供了对ajax的原生支持其主要通过XMLHttpRequest(标准浏览器)、ActiveXObject(IE浏览器)对象实现异步通信效果实现方式(gitee上的案例):
谈一谈let与var和const的区别let为ES6新添加申明变量的命令,它类似于var,但是有以下不同: let命令不存在变量提升,如果在let前使用,会导致报错let暂时性死区的本质,其实还是块级作用域必须“先声明后使用”的性质,let 暂时性死区的原因:var 会变量提升,let 不会。let,const和class声明的全局变量不是全局对象的属性const可以在多个模块间共享const声明的变量与let声明的变量类似,它们的不同之处在于,const声明的变量只可以在声明时赋值,不可
解释一下为何[ ] == ![ ] // ---&gt; true首先看一张图![ ] 是 false原式:[ ] == false根据第八条,false通过tonumber()转换为0原式:[ ] == 0根据第十条,[ ]通过ToPrimitive()转换为' '原式:' ' == 0根据第六条原式:0 == 0尝试实现new function ObjectClass() {//对象 console.log(arguments[...
谈谈对Node的理解Node.js 在浏览器外运行V8 JavaScript引擎,单线程 非阻塞I/O 事件驱动,适应于数据高并发,适合多请求,但不适合高运算,有权限读取操作系统级别的API,npm 仓库,常用框架:Express,koa,Socket.io,AdonisJs,NestJS什么是gulp?作用?机制是什么?gulp是基于node的自动化构建工具作用:1 自动压缩JS文件2 自动压缩CSS文件3 自动合并文件4 自动编译sass5 自动压缩图片6 自动刷
vue和react的区别React严格上只针对MVC的view层,Vue则是MVVM模式virtual(虚拟) DOM不一样,vue会跟踪每一个组件的依赖关系,不需要重新渲染整个组件树。而对于React而言,每当应用的状态被改变时,全部组件都会重新渲染,所以react中会需要shouldComponentUpdate这个生命周期函数方法来进行控制组件写法不一样,React推荐的做法是 JSX + inline style,也就是把HTML和CSS全都写进JavaScript了,即'all in
谈谈对react的理解react是基于v(视图层)层的一款框架,虚拟dom和diff算法react特点:声明式设计高效,其中高效以现在虚拟dom,最大限度减少与dom的交互和diff算法灵活,体现在可以与已知的框架或库很好的配合JSX,是js语法的扩展组件化,构建组件,是代码的更容易得到复用,比较建议在大型项目的开发单项数据,实现单项数流,从而减少代码复用react有哪几个生命周期自己的总结分为三个阶段,初始,运行中,销毁初始化: 执行getDefaultProps钩子