前端面试题(实习)(一)

1 前端需要注意哪些SEO

合理的 title 、 description 、 keywords :搜索对着三项的权重逐个减⼩, title 值强调重点即可,重要关键词出现不要超过2次,⽽且要靠前,不同⻚⾯ title 要有所不 同; description 把⻚⾯内容⾼度概括,⻓度合适,不可过分堆砌关键词,不同⻚⾯ description 有所不同; keywords 列举出重要关键词即可

语义化的 HTML 代码,符合W3C规范:语义化代码让搜索引擎容易理解⽹⻚

重要内容 HTML 代码放在Y前:搜索引擎抓取 HTML 顺序是从上到下,有的搜索引擎对抓 取⻓度有限制,保证重要内容⼀定会被抓取

重要内容不要⽤ js 输出:爬⾍不会执⾏js获取内容 少⽤ iframe :搜索引擎不会抓取 iframe 中的内容

⾮装饰性图⽚必须加 alt

提⾼⽹站速度:⽹站速度是搜索引擎排序的⼀个重要指标

2 <img> 的 title 和 alt 有什么区别

通常当⿏标滑动到元素上的时候显示

alt 是 <img> 的特有属性,是图⽚内容的等价描述,⽤于图⽚⽆法加载时显示、读屏器 阅读图⽚。可提图⽚⾼可访问性,除了纯装饰图⽚外都必须设置有意义的值,搜索引擎会重点分析

3 从浏览器地址栏输⼊url到显示⻚⾯的步骤

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

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

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

载⼊解析到的资源⽂件,渲染⻚⾯,完成。

详细简版
1. 从浏览器接收 url 到开启⽹络请求线程(这⼀部分可以展开浏览器的机制以及进程与线程 之间的关系)
2. 开启⽹络线程到发出⼀个完整的 HTTP 请求(这⼀部分涉及到dns查询, TCP/IP 请求, 五层因特⽹协议栈等知识)
3. 从服务器接收到请求到对应后台接收到请求(这⼀部分可能涉及到负载均衡,安全拦截以 及后台内部的处理等等)
4. 后台和前台的 HTTP 交互(这⼀部分包括 HTTP 头部、响应码、报⽂结构、 cookie 等知 识,可以提下静态资源的 cookie 优化,以及编码解码,如 gzip 压缩等)
5. 单独拎出来的缓存问题, HTTP 的缓存(这部分包括http缓存头部, ETag , catchcontrol 等)
6. 浏览器接收到 HTTP 数据包后的解析流程(解析 html -词法分析然后解析成 dom 树、解 析 css ⽣成 css 规则树、合并成 render 树,然后 layout 、 painting 渲染、复合图 层的合成、 GPU 绘制、外链资源的处理、 loaded 和 DOMContentLoaded 等)
7. CSS 的可视化格式模型(元素的渲染规则,如包含块,控制框, BFC , IFC 等概念)
8. JS 引擎解析过程( JS 的解释阶段,预处理阶段,执⾏阶段⽣成执⾏上下⽂, VO ,作 ⽤域链、回收机制等等)
9. 其它(可以拓展不同的知识模块,如跨域,web安全, hybrid 模式等等内容)

4 如何进⾏⽹站性能优化

content ⽅⾯
减少 HTTP 请求:合并⽂件、 CSS 精灵、 inline Image

减少 DNS 查询: DNS 缓存、将资源分布到恰当数量的主机名

减少 DOM 元素数量


Server ⽅⾯
使⽤ CDN

配置 ETag

对组件使⽤ Gzip 压缩


Cookie ⽅⾯
减⼩ cookie ⼤⼩


css ⽅⾯
将样式表放到⻚⾯顶部

不使⽤ CSS 表达式

使⽤ <link> 不使⽤ @import


Javascript ⽅⾯
将脚本放到⻚⾯底部

将 javascript 和 css 从外部引⼊

压缩 javascript 和 css

删除不需要的脚本
减少 DOM 访问


图⽚⽅⾯
优化图⽚:根据实际颜⾊需要选择⾊深、压缩 优化 css 精灵 不要在 HTML 中拉伸图⽚

5 HTTP状态码及其含义

1XX :信息状态码 100 Continue 继续,⼀般在发送 post 请求时,已发送了 http header 之后服务端 将返回此信息,表示确认,之后发送具体参数信息

2XX :成功状态码

200 OK 正常返回信息

201 Created 请求成功并且服务器创建了新的资源

202 Accepted 服务器已接受请求,但尚未处理

3XX :重定向

301 Moved Permanently 请求的⽹⻚已永久移动到新位置。

302 Found 临时性重定向。

303 See Other 临时性重定向,且总是使⽤ GET 请求新的 URI 。

304 Not Modified ⾃从上次请求后,请求的⽹⻚未修改过。

4XX :客户端错误

400 Bad Request 服务器⽆法理解请求的格式,客户端不应当尝试再次使⽤相同的内 容发起请求。

401 Unauthorized 请求未授权。

403 Forbidden 禁⽌访问。

404 Not Found 找不到如何与 URI 相匹配的资源。

5XX: 服务器错误

500 Internal Server Error Y常⻅的服务器端错误。

503 Service Unavailable 服务器端暂时⽆法处理请求(可能是过载或维护)。

6 语义化的理解

⽤正确的标签做正确的事情!

HTML 语义化就是让⻚⾯的内容结构化,便于对浏览器、搜索引擎解析;

在没有样式 CSS 情况下也以⼀种⽂档格式显示,并且是容易阅读的。

搜索引擎的爬⾍依赖于标记来确定上下⽂和各个关键字的权重,利于 SEO 。

使阅读源代码的⼈对⽹站更容易将⽹站分块,便于阅读维护理解

7 介绍⼀下你对浏览器内核的理解?

主要分成两部分:渲染引擎( layout engineer 或 Rendering Engine )和 JS 引擎
渲染引擎:负责取得⽹⻚的内容( HTML 、 XML 、图像等等)、整理讯息(例如加⼊ CSS 等),以及计算⽹⻚的显示⽅式,然后会输出⾄显示器或打印机。浏览器的内核的不 同对于⽹⻚的语法解释会有不同,所以渲染的效果也不相同。所有⽹⻚浏览器、电⼦邮件客户端以及其它需要编辑、显示⽹络内容的应⽤程序都需要内核
JS 引擎:解析和执⾏ javascript 来实现⽹⻚的动态效果

8 html5有哪些新特性、移除了那些元素?

HTML5 现在已经不是 SGML 的⼦集,主要是关于图像,位置,存储,多任务等功能的增加
绘画 canvas

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

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

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

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

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

新的技术 webworker 、 websocket 、 Geolocation
移除的元素:
纯表现的元素: basefont 、 big 、 center 、 font 、 s 、 strike 、 tt 、 u

对可⽤性产⽣负⾯影响的元素: frame 、 frameset 、 noframes
⽀持 HTML5 新标签:
IE8/IE7/IE6 ⽀持通过 document.createElement ⽅法产⽣的标签

可以利⽤这⼀特性让这些浏览器⽀持 HTML5 新标签

浏览器⽀持新标签后,还需要添加标签默认的样式
当然也可以直接使⽤成熟的框架、⽐如 html5shim

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

cookie 是⽹站为了标示⽤户身份⽽储存在⽤户本地终端(Client Side)上的数据(通常 经过加密)
cookie数据始终在同源的http请求中携带(即使不需要),记会在浏览器和服务器间来回 传递
sessionStorage 和 localStorage 不会⾃动把数据发给服务器,仅在本地保存
存储⼤⼩:
cookie 数据⼤⼩不能超过4k

sessionStorage 和 localStorage 虽然也有存储⼤⼩的限制,但⽐ cookie ⼤得 多,可以达到5M或更⼤
有期时间:
localStorage 存储持久数据,浏览器关闭后数据不丢失除⾮主动删除数据

sessionStorage 数据在当前浏览器窗⼝关闭后⾃动删除

cookie 设置的 cookie 过期时间之前⼀直有效,即使窗⼝或浏览器关闭

10 WEB标准以及W3C标准是什么?

标签闭合、标签⼩写、不乱嵌套、使⽤外链 css 和 js 、结构⾏为表现的分离

11 ⾏内元素有哪些?块级元素有哪些? 空(void)元素有那些?⾏内元 素和块级元素有什么区别?

⾏内元素有: a b span img input select strong

块级元素有: div ul ol li dl dt dd h1 h2 h3 h4… p

空元素: <br> <hr> <img> <input> <link> <meta>

⾏内元素不可以设置宽⾼,不独占⼀⾏

块级元素可以设置宽⾼,独占⼀⾏

12 Canvas和SVG有什么区别

svg 绘制出来的每⼀个图形的元素都是独⽴的 DOM 节点,能够⽅便的绑定事件或⽤来修 改。 canvas 输出的是⼀整幅画布

svg 输出的图形是⽮量图形,后期可以修改参数来⾃由放⼤缩⼩,不会失真和锯⻮。⽽ canvas 输出标量画布,就像⼀张图⽚⼀样,放⼤会失真或者锯⻮

13 viewport

 <meta name="viewport" content="width=device-width,initial-scale=1.0,minimu   

         // width    设置viewport宽度,为⼀个正整数,或字符串‘device-width’    

         // device-width  设备宽度   

         // height   设置viewport⾼度,⼀般设置了宽度,会⾃动解析出⾼度,可以不⽤设置    

         // initial-scale    默认缩放⽐例(初始缩放⽐例),为⼀个数字,可以带⼩数    

         // minimum-scale    允许⽤户Y⼩缩放⽐例,为⼀个数字,可以带⼩数    

         // maximum-scale    允许⽤户Y⼤缩放⽐例,为⼀个数字,可以带⼩数    

         // user-scalable    是否允许⼿动缩放

延伸提问 怎样处理 移动端 1px 被 渲染成 2px 问题

局部处理

mate 标签中的 viewport 属性 , initial-scale 设置为 1

rem 按照设计稿标准⾛,外加利⽤ transfrome 的 scale(0.5) 缩⼩⼀倍即可;

全局处理

mate 标签中的 viewport 属性 , initial-scale 设置为 0.5

rem 按照设计稿标准⾛即可

HTTP状态码及其含义 下表显示了常见的HTTP 1.1状态代码以及它们对应的状态信息和含义。 应当谨慎地使用那些只有HTTP 1.1支持的状态代码,因为许多浏览器还只能够支持HTTP 1.0。如果你使用了HTTP 1.1特有的状态代码,最好能够检查下请求的HTTP版本号。 状态代码 状态信息 含义 100 Continue 初始的请求已经接受,客户应当继续发送请求的其余部分。(HTTP 1.1新) 101 Switching Protocols 服务器将遵从客户的请求转换到另外种协议(HTTP 1.1新) 200 OK 切正常,对GET和POST请求的应答文档跟在后面。 201 Created 服务器已经创建了文档,Location头给出了它的URL。 202 Accepted 已经接受请求,但处理尚未完成。 203 Non-Authoritative Information 文档已经正常地返回,但些应答头可能不正确,因为使用的是文档的拷贝(HTTP 1.1新)。 204 No Content 没有新文档,浏览器应该继续显示原来的文档。如果用户定期地刷新页面,而Servlet可以确定用户文档足够新,这个状态代码是很有用的。 205 Reset Content 没有新的内容,但浏览器应该重置它所显示的内容。用来强制浏览器清除表单输入内容(HTTP 1.1新)。 206 Partial Content 客户发送了个带有Range头的GET请求,服务器完成了它(HTTP 1.1新)。 300 Multiple Choices 客户请求的文档可以在多个位置找到,这些位置已经在返回的文档内列出。如果服务器要提出优先选择,则应该在Location应答头指明。 301 Moved Permanently 客户请求的文档在其他地方,新的URL在Location头中给出,浏览器应该自动地访问新的URL。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值