最全前端面试集合(4)总结篇

面试时注意:
自我介绍不能太长,也不能过短,3分钟左右最合适,尤其做为web前端技术
方面的面试,更加要说到点上,我依次从学习方面、项目实践、未来规划这
三个方面写下web前端面试的自我介绍。

下载资源:https://www.yinxiangit.com

前端开发面试全面知识大纲集合:

HTML+CSS:
对Web标准的理解、浏览器内核差异、兼容性、hack、CSS基本功:布局、盒子模型、选择器优先级及使用、HTML5、CSS3、移动端适应

JavaScript:
数据类型、面向对象、继承、闭包、插件、作用域、跨域、原型链、模块化、自定义事件、内存泄漏、事件机制、异步装载回调、模板引擎、Nodejs、JSON、ajax等。

其他知识点:
HTTP、安全、正则、优化、重构、响应式、移动端、前端三大框架的理解、团队协作、可维护、SEO、UED、架构、职业生涯

作为前端工程师,无论工作年头长短都必须掌握的知点:

1、DOM结构 —— 两个节点之间可能存在哪些关系以及如何在节点之间任意移动。
2、DOM操作 ——如何添加、移除、移动、复制、创建和查找节点等。
3、事件 —— 如何使用事件,以及IE和标准DOM事件模型之间存在的差别。
4、XMLHttpRequest —— 这是什么、怎样完整地执行一次GET请求、怎样检测错误。
5、严格模式与混杂模式 —— 如何触发这两种模式,区分它们有何意义。
6、盒模型 —— 外边距、内边距和边框之间的关系,及IE8以下版本的浏览器中的盒模型
7、块级元素与行内元素 —— 怎么用CSS控制它们、以及如何合理的使用它们
8、浮动元素——怎么使用它们、它们有什么问题以及怎么解决这些问题。
9、HTML与XHTML——二者有什么区别,你觉得应该使用哪一个并说出理由。
10、JSON —— 作用、用途、设计结构。

HTML(面试)

Doctype 作用? 严格模式与混杂模式如何区分?它们有何意义?

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

2、严格模式的排版和 JS 运作模式是  以该浏览器支持的最高标准运行。

3、在混杂模式中,页面以宽松的向后兼容的方式显示。模拟老式浏览器的行为以防止站点无法工作。

4、DOCTYPE不存在或格式不正确会导致文档以混杂模式呈现。

行内元素有哪些?块级元素有哪些? 空(void)元素有那些?

1、CSS规范规定,每个元素都有display属性,确定该元素的类型,每个元素都有默认的display值,比如div默认display属性值为“block”,成为“块级”元素;span默认display属性值为“inline”,是“行内”元素。

2、行内元素有:a b span img input select strong(强调的语气)块级元素有:div ul ol li dl dt dd h1 h2 h3 h4…p

3、知名的空元素:

<br> <hr> <img> <input> <link> <meta>

鲜为人知的是:

<area> <base> <col> <command> <embed> <keygen> <param> <source> <track> <wbr>

link 和@import 的区别是?

1、link属于XHTML标签,而@import是CSS提供的;

2、页面被加载的时,link会同时被加载,而@import引用的CSS会等到页面被加载完再加载;

3、import只在IE5以上才能识别,而link是XHTML标签,无兼容问题;

4、link方式的样式的权重 高于@import的权重.

浏览器的内核分别是什么?

* IE浏览器的内核Trident、Mozilla的Gecko、Chrome的Blink(WebKit的分支)、Opera内核原为Presto,现为Blink;

常见兼容性问题?

1、png24位的图片在iE6浏览器上出现背景,解决方案是做成PNG8.

2、浏览器默认的margin和padding不同,解决方案是加一个全局的

*{margin:0;padding:0;}来统一。

3、IE6双边距bug:块属性标签float后,又有横行的margin情况下,

在ie6显示margin比设置的大。

4、浮动ie产生的双倍距离 #box{ float:left; width:10px; margin:0 0 0 100px;}

5、这种情况之下IE会产生20px的距离,解决方案是在float的标签样式控制中加入 ——_display:inline;将其转化为行内属性。(_这个符号只有ie6会识别)

6、渐进识别的方式,从总体中逐渐排除局部。

7、首先,巧妙的使用“9”这一标记,将IE游览器从所有情况中分离出来。接着,再次使用“+”将IE8和IE7、IE6分离开来,这样IE8已经独立识别。

html5有哪些新特性、移除了那些元素?如何处理HTML5新标签的浏览器兼容问题?如何区分 HTML 和 HTML5?

1、HTML5 现在已经不是 SGML 的子集,主要是关于图像,位置,存储,多任务等功能的增加。

2、绘画 canvas

用于媒介回放的 video 和 audio 元素

本地离线存储 localStorage 长期存储数据,浏览器关闭后数据不丢失;

sessionStorage 的数据在浏览器关闭后自动删除

语意化更好的内容元素,比如 article、footer、header、nav、section

表单控件,calendar、date、time、email、url、search

新的技术webworker, websockt, Geolocation

3、移除的元素

纯表现的元素:basefont,big,center,font, s,strike,tt,u;

对可用性产生负面影响的元素:frame,frameset,noframes;

4、支持HTML5新标签:

IE8/IE7/IE6支持通过document.createElement方法产生的标签,可以利用这一特性让这些浏览器支持HTML5新标签,

浏览器支持新标签后,还需要添加标签默认的样式:

5、当然最好的方式是直接使用成熟的框架、使用最多的是html5shim框架

<!--[if lt IE 9]>  <scriptsrc="http://html5shim.googlecode.com/svn/trunk/html5.js"</script> <![endif]-->

语义化的理解?

  1. 用正确的标签做正确的事情!
  2. html语义化就是让页面的内容结构化,便于对浏览器、搜索引擎解析;
  3. 在没有样式CCS情况下也以一种文档格式显示,并且是容易阅读的。
  4. 搜索引擎的爬虫依赖于标记来确定上下文和各个关键字的权重,利于 SEO。
  5. 使阅读源代码的人对网站更容易将网站分块,便于阅读维护理解。

HTML5的离线储存?

localStorage    长期存储数据,浏览器关闭后数据不丢失;

sessionStorage  数据在浏览器关闭后自动删除。

iframe有那些缺点?

  1. iframe会阻塞主页面的Onload事件;
  2. iframe和主页面共享连接池,而浏览器对相同域的连接有限制,所以会影响页面的并行加载。
  3. 使用iframe之前需要考虑这两个缺点。如果需要使用iframe,最好是通过javascript
  4. 动态给iframe添加src属性值,这样可以可以绕开以上两个问题。

请描述一下 cookies,sessionStorage 和 localStorage 的区别?

  1. cookie在浏览器和服务器间来回传递。 sessionStorage和localStorage不会
  2. sessionStorage和localStorage的存储空间更大;
  3. sessionStorage和localStorage有更多丰富易用的接口;
  4. sessionStorage和localStorage各自独立的存储空间;

CSS(面试)

1、介绍一下CSS的盒子模型?

  • 有两种, IE 盒子模型、标准 W3C 盒子模型;IE的content部分包含了 border 和 pading;
  • 盒模型: 内容(content)、填充(padding)、边界(margin)、 边框(border)

2、CSS3有哪些新特性?

  1. CSS3实现圆角(border-radius:8px),阴影(box-shadow:10px),
  2. 对文字加特效(text-shadow、),线性渐变(gradient),旋转(transform)
  3. transform:rotate(9deg) scale(0.85,0.90) translate(0px,-30px) skew(-9deg,0deg);//旋转,缩放,定位,倾斜
  4. 增加了更多的CSS选择器  多背景 rgba

3、为什么要初始化CSS样式。

因为浏览器的兼容问题,不同浏览器对有些标签的默认值是不同的,如果没对CSS初始化往往会出现浏览器之间的页面显示差异。

当然,初始化样式会对SEO有一定的影响,但鱼和熊掌不可兼得,但力求影响最小的情况下初始化。

最简单的初始化方法就是: * {padding: 0; margin: 0;} (不建议)

当然,初始化样式会对SEO有一定的影响,但鱼和熊掌不可兼得,但力求影响最小的情况下初始化。

4、列出display的值,说明他们的作用。position的值, relative和absolute定位原点是?

  1. 1.
  2. block 象块类型元素一样显示。
  3. none 缺省值。象行内元素类型一样显示。
  4. inline-block 象行内元素一样显示,但其内容象块类型元素一样显示。
  5. list-item 象块类型元素一样显示,并添加样式列表标记。
  6. 2.
  7. absolute
  8. 生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位。
  9. fixed (老IE不支持)
  10. 生成绝对定位的元素,相对于浏览器窗口进行定位。
  11. relative
  12. 生成相对定位的元素,相对于其正常位置进行定位。
  13. static 默认值。没有定位,元素出现在正常的流中
  14. (忽略 top, bottom, left, right z-index 声明)。
  15. inherit 规定从父元素继承 position 属性的值。
 

5、如何设计一个满屏“品”字布局?

简单的方式:
  • 上面的div宽100%,
  • 下面的两个div分别宽50%,用float或inline使其不换行。

javascript(面试)

1、JS的数据类型有哪些?typeof运算符的执行结果都有哪些数据类型?

数据类型主要包括两部分:

基本数据类型: Undefined、Null、Boolean、Number和String

引用数据类型: Array 、Object

typeof运算符的结果类型:

number,string,boolean,object,function,undefined

2.null,undefined 的区别?

null        表示一个对象被定义了,值为“空值”;

undefined   表示不存在这个值。

3.怎么判断一个变量没有被定义

typeof bianliang ==”undefined”

4.怎么判断一个变量arr的话是否为数组(此题用typeof不行)

Arr instanceof Array

5.事件委托是什么

事件委托就是事件目标自身不处理事件,而是把处理任务委托给其父元素或者祖先元素,甚至根元素(document)。

6.描述下JSON对象的两个很重要的方法

JSON.parse() //JSON字符串转换为JSON对象

JSON.stringify() //JSON对象转化为字符串

7.写一个函数getRandomNumber(startNum,endNum),去除startNum到endNum之间的任意随机数

function getRandomNumber(startNum,endNum){
        var endRand = endNum - startNum + 1;
        //0~1中间的16位数字
        var randNum = Math.random();
        //随机取出来0~9之间的任意一个数字
        randNum = Math.floor(randNum * endRand);
        return randNum+startNum;
}
 

8.写一个通用的去除字符串左右空格的函数?

String.prototype.strim = function(){
return this.replace(/(^s|s$)/g,””);}

其他问题(面试)

1、一个页面从输入 URL 到页面加载显示完成,这个过程中都发生了什么?

查找浏览器缓存 
DNS解析、查找该域名对应的IP地址、重定向(301)、发出第二个GET请求    进行HTTP协议会话    客户端发送报头(请求报头)
服务器回馈报头(响应报头)    html文档开始下载    文档树建立,根据标记请求所需指定MIME类型的文件
文件显示浏览器这边做的工作大致分为以下几步: 加载:根据请求的URL进行域名解析,向服务器发起请求,接收文件(HTML、JS、CSS、图象等)。
解析:对加载到的资源(HTML、JS、CSS等)进行语法解析,建议相应的内部数据结构(比如HTML的DOM树,JS的(对象)属性表,CSS的样式规则等等)

2、http状态码有那些?分别代表是什么意思?

100-199 用于指定客户端应相应的某些动作。
200-299 用于表示请求成功。
300-399 用于已经移动的文件并且常被包含在定位头信息中指定新的地址信息。
400-499 用于指出客户端的错误。
400   语义有误,当前请求无法被服务器理解。
401   当前请求需要用户验证
403  服务器已经理解请求,但是拒绝执行它。
500-599 用于支持服务器错误。
503 – 服务不可用

3、用正则验证身份号码?

1、//身份证正则表达式(15位)
isIDCard1=/^[1-9]d{7}((0d)|(1[0-2]))(([0|1|2]d)|3[0-1])d{3}$/;
2、//身份证正则表达式(18位)
isIDCard2=/^[1-9]d{5}[1-9]d{3}((0d)|(1[0-2]))(([0|1|2]d)|3[0-1])d{4}$/;
身份证正则合并:(^d{15})|(d17([0−9]|X))

4、跨域解决方法小结

  1. 1、:使用jsonp ,即json with padding(内填充),顾名思义,就是把JSON填充到一个盒子里
  2. 2、:直接在服务器端设置跨域资源访问 CORS(Cross-Origin Resource Sharing),设置Request Header头中Access-Control-Allow-Origin为指定可获取数据的域名
  3. 3、:直接请求一张图片
  4. 4、:通过修改document.domain来跨子域5、:通过window.name来跨域接收数据
  5. 6、:使用HTML5的window.postMessage方法跨域

5、TCP/IP四层协议体系结构?

由上至下顺序为:

  1. 1、应用层(FTP、Telnet、SMTP、RIP、NFS、DNS)
  2. 2、运输层(TCP、UDP)
  3. 3、网际层(IP、ICMP、ARP、RARP)
  4. 4、网络接口层

五层协议体系结构?

  1. 应用层
  2. 运输层
  3. 网络层
  4. 数据链路层
  5. 物理层

OSI的七层体系结构?

  1. 应用层
  2. 表示层
  3. 会话层
  4. 运输层
  5. 网络层
  6. 数据链路层
  7. 物理层

浏览器同源策略:

浏览器安全的基石是“同源策略”(same-origin policy)。所谓“同源”指的是“三个相同”:

  • 协议相同
  • 域名相同
  • 端口相同

原文地址:https://www.cnblogs.com/bingerger/p/11516829.html

时间: 2024-10-09 15:30:49

最全前端面试集合(4)总结篇的相关文章

最全前端面试集合(3)

一.页面从输入 URL 到页面加载显示完成 下载资源:www.yinxiangit.com 简单解答: 1.浏览器根据请求的URL交给DNS域名解析,找到真实IP,向服务器发起请求: 2.服务器交给后台处理完成后返回数据,浏览器接收文件(HTML.JS.CSS.图象等) 3.浏览器对加载到的资源(HTML.JS.CSS等)进行语法解析,建立相应的内部数据结构(如HTML的DOM): 4.载入解析到的资源文件,渲染页面,完成. 详细解答: 1. 浏览器会开启一个线程来处理这个请求,对 URL 分析

最全前端面试集合 (1)

javascript对象的几种创建方式 1,工厂模式 2,构造函数模式 3,原型模式 4,混合构造函数和原型模式 5,动态原型模式 6,寄生构造函数模式 7,稳妥构造函数模式 下载资源:www.yinxiangit.com javascript继承的6种方法 1,原型链继承 2,借用构造函数继承 3,组合继承(原型+借用构造) 4,原型式继承 5,寄生式继承 6,寄生组合式继承 异步加载和延迟加载 1.异步加载的方案: 动态插入script标签 2.通过ajax去获取js代码,然后通过eval执

最全前端面试集合(2)

1.请问闭包有那一些的特性 答:闭包有三个特性: 1.函数嵌套函数 2.函数内部可以引用外部的参数和变量 3.参数和变量不会被垃圾回收机制回收 注:闭包(closure)是JS语言的一个难点,也是它的独有的特色,在很多的高级应用都要依靠闭包实现. 下载链接:https://www.yinxiangit.com 2.闭包的定义及其优缺点 定义: 闭包 当一个函数的返回值是另外一个函数,而返回的那个函数如果调用了其父函数内部的变量,且返回的这个函数在外部被执行,就产生了闭包.闭包是一个环境,具体指的

web前端面试试题总结---css篇

CSS 介绍一下标准的CSS的盒子模型?低版本IE的盒子模型有什么不同的? (1)有两种, IE 盒子模型.W3C 盒子模型: (2)盒模型: 内容(content).填充(padding).边界(margin). 边框(border): (3)区 别: IE的content部分把 border 和 padding计算了进去; CSS选择符有哪些?哪些属性可以继承? * 1.id选择器( # myid) 2.类选择器(.myclassname) 3.标签选择器(div, h1, p) 4.相邻选

web前端面试试题总结---javascript篇

JavaScript 介绍js的基本数据类型. Undefined.Null.Boolean.Number.String. ECMAScript 2015 新增:Symbol(创建后独一无二且不可变的数据类型 ) 介绍js有哪些内置对象? Object 是 JavaScript 中所有对象的父对象 数据封装类对象:Object.Array.Boolean.Number 和 String 其他对象:Function.Arguments.Math.Date.RegExp.Error 参考:http:

前端面试:基础javascript篇(一)

(1)get请求传参长度的误区 误区:我们经常说get请求参数的大小存在限制,而post请求的参数大小是无限制的. 实际上HTTP 协议从未规定 GET/POST 的请求长度限制是多少.对get请求参数的限制是来源与浏览器或web服务器,浏览器或web服务器限制了url的长度.为了明确这个概念,我们必须再次强调下面几点: HTTP 协议未规定 GET 和POST的长度限制 GET的最大长度显示是因为浏览器和 web服务器限制了 URI的长度 不同的浏览器和WEB服务器,限制的最大长度不一样 要支

前端面试:基础javascript篇(二)

11. js的new操作符做了哪些事情 new 操作符新建了一个空对象,这个对象原型指向构造函数的prototype,执行构造函数后返回这个对象.   12. 改变函数内部this指针的指向函数(bind,apply,call的区别) 通过apply和call改变函数的this指向,他们两个函数的第一个参数都是一样的表示要改变指向的那个对象,第二个参数,apply是数组,而call则是arg1,arg2...这种形式. 通过bind改变this作用域会返回一个新的函数,这个函数不会马上执行.  

web前端面试总结

本文由我收集总结了一些前端面试题,初学者阅后也要用心钻研其中的原理,重要知识需要系统学习.透彻学习,形成自己的知识链.万不可投机取巧,临时抱佛脚只求面试侥幸混过关是错误的!也是不可能的! 前端还是一个年轻的行业,所以关注各种前端技术,跟上快速变化的节奏,也是身为一个前端程序员必备的技能之一. 前端开发知识点: HTML&CSS: 对Web标准的理解.浏览器内核差异.兼容性.hack.CSS基本功:布局.盒子模型.选择器优先级. HTML5.CSS3.Flexbox JavaScript: 数据类

前端面试的面试经验

?? 文章列表 前端面试总结--基础javascript篇 前端面试总结--进阶javascript篇 前端面试总结--http.html和浏览器篇 前端面试总结--css篇 一.基础javascript篇 1. get请求传参长度的误区 误区:我们经常说get请求参数的大小存在限制,而post请求的参数大小是无限制的. 实际上HTTP 协议从未规定 GET/POST 的请求长度限制是多少.对get请求参数的限制是来源与浏览器或web服务器,浏览器或web服务器限制了url的长度.为了明确这个概