ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

最全前端面试集合(3)

2019-09-13 14:56:22  阅读:155  来源: 互联网

标签:Map 浏览器 最全 JS 面试 服务器 前端 CSS 页面


一、页面从输入 URL 到页面加载显示完成

 

 下载资源:www.yinxiangit.com

简单解答:

1.浏览器根据请求的URL交给DNS域名解析,找到真实IP,向服务器发起请求;

 

2.服务器交给后台处理完成后返回数据,浏览器接收文件(HTML、JS、CSS、图象等)

 

3.浏览器对加载到的资源(HTML、JS、CSS等)进行语法解析,建立相应的内部数据结构(如HTML的DOM);

 

4.载入解析到的资源文件,渲染页面,完成。

 

 

详细解答:

1. 浏览器会开启一个线程来处理这个请求,对 URL 分析判断如果是 http 协议就按照 Web 方式来处理;

 

2.调用浏览器内核中的对应方法,比如 WebView 中的 loadUrl 方法;

 

3.通过DNS解析获取网址的IP地址,设置 UA 等信息发出第二个GET请求;

进行HTTP协议会话,客户端发送报头(请求报头);

 

4.进入到web服务器上的 Web Server,如 Apache、Tomcat、Node.JS 等服务器;

 

5.进入部署好的后端应用,如 PHP、Java、JavaScript、Python 等,找到对应的请求处理;

 

6.处理结束回馈报头,此处如果浏览器访问过,缓存上有对应资源,会与服务器最后修改时间对比,一致则返回304;

 

7.浏览器开始下载html文档(响应报头,状态码200),同时使用缓存;

文档树建立,根据标记请求所需指定MIME类型的文件(比如css、js),同时设置了cookie;

 

8页面开始渲染DOM,JS根据DOM API操作DOM,执行事件绑定等,页面显示完成。

 

二、平时如何管理你的项目?

 

1.先期团队必须确定好全局样式(globe.css),编码模式(utf-8) 等;

2.编写习惯必须一致(例如都是采用继承式的写法,单样式都写成一行);

3.标注样式编写人,各模块都及时标注(标注关键样式调用的地方);

4.页面进行标注(例如 页面 模块 开始和结束);

5.CSS跟HTML 分文件夹并行存放,命名都得统一(例如style.css);

6.JS 分文件夹存放 命名以该JS功能为准的英文翻译。

 

三、页面重构怎么操作?

 

网站重构:在不改变外部行为的前提下,简化结构、添加可读性,而在网站前端保持一致的行为。
也就是说是在不改变UI的情况下,对网站进行优化,在扩展的同时保持一致的UI。

 

对于传统的网站来说重构通常是:
表格(table)布局改为DIV+CSS
使网站前端兼容于现代浏览器(针对于不合规范的CSS、如对IE6有效的)
对于移动平台的优化
针对于SEO进行优化
深层次的网站重构应该考虑的方面

 

减少代码间的耦合

让代码保持弹性
严格按规范编写代码
设计可扩展的API
代替旧有的框架、语言(如VB)
增强用户体验
通常来说对于速度的优化也包含在重构中

压缩JS、CSS、image等前端资源(通常是由服务器来解决)
程序的性能优化(如数据读写)
采用CDN来加速资源加载
对于JS DOM的优化
HTTP服务器的文件缓存

 

四、mvvm框架是什么?它和其它框架(jquery)的区别是什么?哪些场景适合?

 

答:一个model+view+viewModel框架,数据模型model,viewModel连接两个

 

区别:vue数据驱动,通过数据来显示视图层而不是节点操作。

场景:数据操作比较多的场景,更加便捷

 

五、React 和 Vue 有什么区别?

Set 和 Map 数据结构()

ES6 提供了新的数据结构 Set 它类似于数组,但是成员的值都是唯一的,没有重复的值。

ES6 提供了 Map 数据结构。它类似于对象,也是键值对的集合,但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键。也就是说,Object 结构提供了“字符串—值”的对应,Map 结构提供了“值—值”的对应,是一种更完善的 Hash 结构实现。

六、WeakMap 和 Map 的区别?

WeakMap 结构与 Map 结构基本类似,唯一的区别是它只接受对象作为键名( null 除外),不接受其他类型的值作为键名,而且键名所指向的对象,不计入垃圾回收机制。

 

WeakMap 最大的好处是可以避免内存泄漏。一个仅被 WeakMap 作为 key 而引用的对象,会被垃圾回收器回收掉。

 

WeakMap 拥有和 Map 类似的 set(key, value) 、get(key)、has(key)、delete(key) 和 clear() 方法, 没有任何与迭代有关的属性和方法。

七、重排和重绘

部分渲染树(或者整个渲染树)需要重新分析并且节点尺寸需要重新计算。这被称为重排。注意这里至少会有一次重排-初始化页面布局。

由于节点的几何属性发生改变或者由于样式发生改变,例如改变元素背景色时,屏幕上的部分内容需要更新。这样的更新被称为重绘

 

八、什么叫优雅降级和渐进增强?

 

优雅降级:

Web站点在所有新式浏览器中都能正常工作、

如果用户使用的是老式浏览器、

则代码会检查以确认它们是否能正常工作、

由于IE独特的盒模型布局问题、

针对不同版本的IE的hack实践过优雅降级了、

为那些无法支持功能的浏览器增加候选方案、

使之在旧式浏览器上以某种形式降级体验却不至于完全失效。

 

渐进增强:

从被所有浏览器支持的基本功能开始、

逐步地添加那些只有新式浏览器才支持的功能、

向页面增加无害于基础浏览器的额外样式和功能的、

当浏览器支持时,它们会自动地呈现出来并发挥作用。

标签:Map,浏览器,最全,JS,面试,服务器,前端,CSS,页面
来源: https://www.cnblogs.com/bingerger/p/11516825.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有