最全前端面试集合(3)

一、页面从输入 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实践过优雅降级了、

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

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

渐进增强:

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

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

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

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

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

时间: 2024-10-09 15:31:05

最全前端面试集合(3)的相关文章

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

面试时注意: 自我介绍不能太长,也不能过短,3分钟左右最合适,尤其做为web前端技术 方面的面试,更加要说到点上,我依次从学习方面.项目实践.未来规划这 三个方面写下web前端面试的自我介绍. 下载资源:https://www.yinxiangit.com 前端开发面试全面知识大纲集合: HTML+CSS:对Web标准的理解.浏览器内核差异.兼容性.hack.CSS基本功:布局.盒子模型.选择器优先级及使用.HTML5.CSS3.移动端适应 JavaScript:数据类型.面向对象.继承.闭包.

最全前端面试集合 (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.闭包的定义及其优缺点 定义: 闭包 当一个函数的返回值是另外一个函数,而返回的那个函数如果调用了其父函数内部的变量,且返回的这个函数在外部被执行,就产生了闭包.闭包是一个环境,具体指的

前端工具集合

前端组织 虽混过外企俩家,但劳资英文这项的技能点还是灰色的...so,俺关注的站点主要以中文为主 名称 推荐指数 备注/说明 Git ★★★★★ 劳资清楚这不是个纯粹的前端社区... 但作为全球最大的搞基社区,无数前端项目在这启航 没Git都不好意思面基有木有! MDN ★★★★★ 不解释,无数的资源再等着你探索 Awesomes.cn ★★★★☆ 国人维护的前端资源库,深度对接到 Github 慕课 ★★★★☆ 大量的在线计算机课程. 虽然初.中级居多,但是不乏有巨作值得细细品尝 W3Cplu

前端网站集合

原网址https://segmentfault.com/a/1190000007062464 内容精简 资源这么多,多看看多学习再总结肯定是好的.多读读就算看重了不算浪费时间,毕竟一千个读者就有一千个林黛玉,还有温故而知新,说不定多读一些内容,就发现惊喜了呢.不过,在此也精简一些内容,就1~2项,只供参考.更多内容细看分类. 知乎:程序员应该如何注意身体健康? js:JavaScript 标准参考教程 js:JavaScript 秘密花园 Es6:ECMAScript 6入门 Es6:深入浅出E

前端面试中的常见的算法问题

虽说我们很多时候前端很少有机会接触到算法.大多都交互性的操作,然而从各大公司面试来看,算法依旧是考察的一方面.实际上学习数据结构与算法对于工程师去理解和分析问题都是有帮助的.如果将来当我们面对较为复杂的问题,这些基础知识的积累可以帮助我们更好的优化解决思路.下面罗列在前端面试中经常撞见的几个问题吧. Q1 判断一个单词是否是回文? 回文是指把相同的词汇或句子,在下文中调换位置或颠倒过来,产生首尾回环的情趣,叫做回文,也叫回环.比如 mamam redivider . 很多人拿到这样的题目非常容易

前端面试所遇到的技术点

前端面试所遇到的技术点: 面试问题: HTML: 常见的HTML标签: (1)行标签和块级标签分别有哪些? (2)常见的HTML5的标签有哪些? (3)如何减少HTTP的请求和优化? 减少请求的资源方法: 将多个css资源文件打包到一个文件里.将多个js打包到一个js文件里.针对图片资源:可采用雪碧图将多个图片放置到一个图片里. 尽量的压缩css文件,js文件,图片文件,采用无损压缩的方式或者是使用webP格式的图片. (4)html5和HTML4的区别 html5可以自定义标签,并兼容html

前端面试绝对会考的JS问题!【已经开源】

写在前面 [前端指南]前端面试库已经开源,正在完善之中 [x] css问题 [x] html问题 [x] javascript问题 github地址 https://github.com/nanhupatar... JavaScript 的组成 JavaScript 由以下三部分组成: ECMAScript(核心):JavaScript 语言基础 DOM(文档对象模型):规定了访问 HTML 和 XML 的接口 BOM(浏览器对象模型):提供了浏览器窗口之间进行交互的对象和方法 JS 的基本数据

2018年前端面试总结

2018年前端面试总结 再有两个月,2018就快过完了,因而有必要在年末对2018年的前端学习做一个总结,本文主要从前端面试中的一些基础知识来对前端进行相关的总结.本文根据网络面试题进行总结. 基础知识 本部分主要从以下几个方面来回顾前端相关的基础知识: HTML相关 CSS相关 JAVASCRIPT相关 DOM相关 HTTP相关 webpack相关 Html html 根据内容的结构化(内容语义化),选择合适的标签(代码语义化)便于开发者阅读和写出更优雅的代码的同时让浏览器的爬虫和机器很好地解