首页 > 北京前端工程师 > 前端开发面试题及答案整理

前端开发面试题及答案整理

发布-网页培训班 | 浏览量-

阿里前端开发校招面试题(电试),很多东西没去关注,没去使用发现自己已经忘记了,难怪别人说出来工作之后最聪明的是“面试的时候”。一点也不假啊,想当初我面试时,什么AMD、CMDNodejsHTTP协议,CSS模式、javascript面向对象,顺手捏来,入职后没接触这些东西,又不太熟悉了。本文仅为复习,温故知新。
 
原文:https://github.com/jayli/jayli.github.com/issues/19 此外重点参照 #16
 
1. CSS 盒子模型,绝对定位和相对定位
 
1)清除浮动,什么时候需要清除浮动,清除浮动都有哪些方法
 
2)如何保持浮层水平垂直居中
 
3)position 和 display 的取值和各自的意思和用法   display:block display:none display:inline-block 区别
 
4)样式的层级关系,选择器优先级,样式冲突,以及抽离样式模块怎么写,说出思路,有无实践经验
 
2. JavaScript 基础
 
1)JavaScript 里有哪些数据类型,解释清楚 null 和 undefined,解释清楚原始数据类型和引用数据类型。比如讲一下 1 和 Number(1) 的区别
 
2)将一下 prototype 是什么东西,原型链的理解,什么时候用 prototype
 
3)函数里的this什么含义,什么情况下,怎么用。
 
3)apply 和 call 什么含义,什么区别?什么时候用。
 
4)数组和对象有哪些原生方法,列举一下,分别是什么含义,比如链接两个数组用哪个方法,删除数组的质定项。
 
3. JavaScript 的面向对象
 
1)JS 模块包装格式都用过哪些,CommonJS、AMD、CMD、KMD。定义一个js 模块代码,最精简的格式是怎样。
 
2)JS 怎么实现一个类。怎么实例化这个类。
 
3)是否了解自定义事件。jQuery里的fire函数是什么意思,什么时候用。
 
4)说一下了解的js 设计模式,解释一下单例、工厂、观察者。
 
5)ajax 跨域有哪些方法,jsonp 的原理是什么,如果页面编码和被请求的资源编码不一致如何处理?
 
4. 开源工具
 
1)是否了解开源的工具 bower、npm、yeoman、Grunt、gulp,有无用过,有无写过,一个 npm 的包里的 package.JSON 具备的必要的字段都有哪些(名称、版本号,依赖)
 
2)fiddle、charles 有没有用过,什么时候用
 
3)会不会用 ps 扣图,png、jpg、gif 这些图片格式解释一下,分别什么时候用。是否了解webp
 
4)说一下你常用的命令行工具
 
5)会不会用git,说上来几个命令,说一下git和svn的区别,有没有用git解决过冲突
 
5. 计算机基础
 
1)说一下网络五层模型(HTTP协议从应用层到底层都基于哪些协议),HTTP 协议头字段说上来几个,缓存字段是怎么定义的,http和https的区别,在具体使用的时候有什么不一样。是否尽可能详细的掌握HTTP协议。
 
2)cookies 是干嘛的,服务器和浏览器之间的 cookies 是怎么传的,httponly 的 cookies 和可读写的 cookie 有什么区别,有无长度限制
 
3)从敲入 URL 到渲染完成的整个过程,包括 DOM 构建的过程,说的约详细越好。
 
4)是否了解web注入攻击,说下原理,最常见的两种攻击(XSS 和 CSRF)了解到什么程度。
 
5)是否了解公钥加密和私钥加密。如何确保表单提交里的密码字段不被泄露。验证码是干嘛的,是为了解决什么安全问题。
 
6)编码常识:文件编码、URL 编码、Unicode编码 什么含义。一个gbk编码的页面如何正确引用一个utf8的的资源
 
6. 考察学习能力和方法
 
1)你每天必须登录的网站(前端技术相关)是什么?
 
2)前端技术方面看过哪些书,有无笔记,都有哪些收获。
 
3)收藏了哪些代码片段?
 
4)怎么理解前端技术的大趋势?自己再做哪方面的知识储备?
 
5)是否了解或精通其他(后端)的编程语言?
 
6)做过的项目有没有什么(视觉、交互)美感?什么是美?你觉得让你自己赏心悦目的网站或应用有哪些?
 
7)做项目有没有遇到哪些印象深刻的技术攻关,具体遇到什么问题,怎么找答案的,最后怎么解的。

 

HTML+CSS
1.对WEB标准以及W3C的理解与认识
标签闭合、标签小写、不乱嵌套、提高搜索机器人搜索几率、使用外 链css和js脚本、结构行为表现的分离、文件下载与页面速度更快、内容能被更多的用户所访问、内容能被更广泛的设备所访问、更少的代码和组件,容易维 护、改版方便,不需要变动页面内容、提供打印版本而不需要复制内容、提高网站易用性;

2.xhtml和html有什么区别
HTML是一种基本的WEB网页设计语言,XHTML是一个基于XML的置标语言
最主要的不同:
XHTML 元素必须被正确地嵌套。
XHTML 元素必须被关闭。
标签名必须用小写字母。
XHTML 文档必须拥有根元素。

3.Doctype? 严格模式与混杂模式-如何触发这两种模式,区分它们有何意义?
用于声明文档使用那种规范(html/Xhtml)一般为 严格 过度 基于框架的html文档
加入XMl声明可触发,解析方式更改为IE5.5 拥有IE5.5的bug

4.行内元素有哪些?块级元素有哪些?CSS的盒模型?
块级元素:div p h1 h2 h3 h4 form ul
行内元素: a b br i span input select
Css盒模型:内容,border ,margin,padding

5.CSS引入的方式有哪些? link和@import的区别是?
内联 内嵌 外链 导入
区别 :同时加载
前者无兼容性,后者CSS2.1以下浏览器不支持
Link 支持使用javascript改变样式,后者不可

6.CSS选择符有哪些?哪些属性可以继承?优先级算法如何计算?内联和important哪个优先级高?
标签选择符 类选择符 id选择符
继承不如指定 Id>class>标签选择
后者优先级高

7.前端页面有哪三层构成,分别是什么?作用是什么?
结构层 Html 表示层 CSS 行为层 js

8.css的基本语句构成是?
选择器{属性1:值1;属性2:值2;……}

9.你做的页面在哪些流览器测试过?这些浏览器的内核分别是什么?

Ie(Ie内核) 火狐(Gecko) 谷歌(webkit) opear(Presto)

10.写出几种IE6 BUG的解决方法
1.双边距BUG float引起的 使用display
2.3像素问题 使用float引起的 使用dislpay:inline -3px
3.超链接hover 点击后失效 使用正确的书写顺序 link visited hover active
4.Ie z-index问题 给父级添加position:relative
5.Png 透明 使用js代码 改
6.Min-height 最小高度 !Important 解决’
7.select 在ie6下遮盖 使用iframe嵌套
8.为什么没有办法定义1px左右的宽度容器(IE6默认的行高造成的,使用over:hidden,zoom:0.08 line-height:1px)

11.标签上title与alt属性的区别是什么?
Alt 当图片不显示是 用文字代表。
Title 为该属性提供信息

12.描述css reset的作用和用途。
Reset重置浏览器的css默认属性 浏览器的品种不同,样式不同,然后重置,让他们统一

13.解释css sprites,如何使用。
Css 精灵 把一堆小的图片整合到一张大的图片上,减轻服务器对图片的请求数量

14.浏览器标准模式和怪异模式之间的区别是什么?

盒子模型 渲染模式的不同
使用 window.top.document.compatMode 可显示为什么模式

15.你如何对网站的文件和资源进行优化?期待的解决方案包括:
文件合并
文件最小化/文件压缩
使用CDN托管
缓存的使用

16.什么是语义化的HTML?
直观的认识标签 对于搜索引擎的抓取有好处

17.清除浮动的几种方式,各自的优缺点
1.使用空标签清除浮动 clear:both(理论上能清楚任何标签,,,增加无意义的标签)
2.使用overflow:auto(空标签元素清除浮动而不得不增加无意代码的弊端,,使用zoom:1用于兼容IE)
3.是用afert伪元素清除浮动(用于非IE浏览器)

Javascript
1.javascript的typeof返回哪些数据类型
共6种:Object number function boolean underfind string

>>typeof js中typeof的用法

2.例举3种强制类型转换和2种隐式类型转换?

强制(parseInt,parseFloat,number)
隐式(== – ===)
>>jquery number() parseInt() parseFloat()
3.split() join() 的区别
前者是切割成数组的形式,后者是将数组转换成字符串

4.数组方法pop() push() unshift() shift()
Push()尾部添加 pop()尾部删除
Unshift()头部添加 shift()头部删除

5.事件绑定和普通事件有什么区别
区别就是普通事件只支持单个事件,而事件绑定可以添加多个事件,就这么简单。

6.IE和DOM事件流的区别
1.执行顺序不一样、
2.参数不一样
3.事件加不加on
4.this指向问题

7.IE和标准下有哪些兼容性的写法
Var ev = ev || window.event
document.documentElement.clientWidth || document.body.clientWidth
Var target = ev.srcElement||ev.target

8.ajax请求的时候get 和post方式的区别
一个在url后面 一个放在虚拟载体里面
有大小限制
安全问题
应用不同 一个是论坛等只需要请求的,一个是类似修改密码的

9.call和apply的区别
Object.call(this,obj1,obj2,obj3)
Object.apply(this,arguments)

10.ajax请求时,如何解释json数据
使用eval parse 鉴于安全性考虑 使用parse更靠谱


11.b继承a的方法
b.prototype=new a;


12.写一个获取非行间样式的函数

function getStyle(obj,attr,value)
{
if(!value)
{
if(obj.currentStyle)
{
return obj.currentStyle(attr)
}
else
{
obj.getComputedStyle(attr,false)
}
}
else
{
obj.style[attr]=value
}
}

13.事件委托是什么
让利用事件冒泡的原理,让自己的所触发的事件,让他的父元素代替执行!
http://www.webasily.com/?p=78 例子可见此链接

14.闭包是什么,有什么特性,对页面有什么影响
闭包就是能够读取其他函数内部变量的函数。
http://blog.csdn.net/gaoshanwudi/article/details/7355794 此链接可查看(问这个问题的不是一个公司)

15.如何阻止事件冒泡和默认事件
canceBubble return false

16.添加 删除 替换 插入到某个接点的方法
obj.appendChidl()
obj.innersetBefore
obj.replaceChild
obj.removeChild

17.解释jsonp的原理,以及为什么不是真正的ajax
动态创建script标签,回调函数
Ajax是页面无刷新请求数据操作

18.javascript的本地对象,内置对象和宿主对象
本地对象为array obj regexp等可以new实例化
内置对象为gload Math 等不可以实例化的
宿主为浏览器自带的document,window 等

19.document load 和document ready的区别
Document.onload 是在结构和样式加载完才执行js
Document.ready原生种没有这个方法,jquery中有 $().ready(function)

20.”==”和“===”的不同
前者会自动转换类型
后者不会

21.javascript的同源策略
一段脚本只能读取来自于同一来源的窗口和文档的属性,这里的同一来源指的是主机名、协议和端口号的组合

22.编写一个数组去重的方法
function oSort(arr)
{
var result ={};
var newArr=[];
for(var i=0;i
{
if(!result[arr])
{
newArr.push(arr)
result[arr]=1
}
}
return newArr
}

网易前端实习面试题及答案

JS函数的定义与调用方法

最新前端工程师面试题

10个最常见的 HTML5 面试题及答案

 

原文地址:http://www.35ui.cn/post/20160822523.html

标签前端开发面试题前端面试题

上一条: html5手机移动端WEB资源整合 移动前端头部标签(HTML5 head meta)
下一条: jquery字符串截取 js几个经常用到的字符串的截取

  • 作品
  • 素材
  • ued
  • 资源
  • 前端工程师
  • Asp网页培训班
  • jquery培训班
  • 北京网站制作
  • logo设计培训班
  • 做网站常用代码