本篇收录了一些面试中经常会遇到的经典面试题,并且都给出了我在网上收集的答案。眼看新的一年马上就要开始了,相信很多的前端开发者会有一些跳槽的悸动,通过对本篇知识的整理以及经验的总结,希望能帮到更多的前端面试者。(如有错误或更好的答案,欢迎指正,水平有限,望各位不吝指教。)

一. 什么是语义化的HTML?有何意义?为什么要做到语义化?(高频率考题)

a.什么是语义化的HTML?

语义化的HTML就是写出的HTML代码,符合内容的结构化(内容语义化),选择合适的标签
(代码语义化),能够便于开发者阅读和写出更优雅的代码的同时让浏览器的爬虫和机器
很好地解析。

b、为什么要做到语义化?

1.有利于SEO,有利于搜索引擎爬虫更好的理解我们的网页,从而获取更多的有效信息,提升网页
的权重。
2.在没有CSS的时候能够清晰的看出网页的结构,增强可读性。
3.便于团队开发和维护,语义化的HTML可以让开发者更容易的看明白,从而提高团队的效率和协
调能力。
4.支持多终端设备的浏览器渲染。

二. 行内元素和块元素分别有哪些?(高频率)

块级元素:div  , p  , form,   ul,  li ,  ol, dl,    form,   address, fieldset,  hr,menu,  table
行内元素:span,   strong,   em,  br,  img ,  input,  label,  select,  textarea, cite

三. iframe有那些缺点?

1.frame会阻塞主页面的Onload事件;
2.iframe和主页面共享连接池,而浏览器对相同域的连接有限制,所以会影响页面的并行加载。
3.SEO不利,对爬虫不友好。

四. CSS的优先级?内联和important哪个优先级高?(高频率)

id选择器 值:100
类选择器 值:10
标签选择器: 1

五. 盒子垂直居中方法(高频率)

position: absolute;
left:50%;
top:50%;
width:400px;
height:400px;
margin-left:-200px;
margin-top:-200px;

六. 浮动元素清除浮动方法(高频率)

四种方法:
1、使用空标签清除浮动
2、使用overflow属性。(overflow:auto;zoom:1″用于兼容IE6)
3、使用after伪对象清除浮动。 该方法只适用于非IE浏览器
4、浮动外部元素,float-in-float。这种方法很简单,就是把“#outer”元素也进行浮动(向左或者向右)。

七. Diplay:none与visibility:hidden的区别(高频率)

visibility:hidden隐藏,但在浏览时保留位置;
display:none视为不存在,且不加载!

八. CSS中em和px的关系和区别

1. em的值并不是固定的;
2. em会继承父级元素的字体大小。12px = 1.2em

九. 闭包的理解,javascript的作用域(高频率)

a、闭包就是能够读取其他函数内部变量的函数。
b、在本质上,闭包就是将函数内部和函数外部连接起来的一座桥梁。
闭包的用途
闭包可以用在许多地方。它的最大用处有两个,一个是前面提到的可以读取函数内部的变量,另
一个就是让这些变量的值始终保持在内存中。 实例如下:
根据作用域链的规则,底层作用域没有声明的变量,会向上一级找,找到就返回,没找到就一
直找,直到window的变量,没有就返回undefined。这里明显count 是函数内部的flag2 的那
个count 。
    var count=10;   //全局作用域 标记为flag1function add(){var count=0;    //函数全局作用域 标记为flag2return function(){count+=1;   //函数的内部作用域alert(count);}}var s = add()s();//输出1s();//输出2
JS中作用域的概念:
表示变量或函数起作用的区域,指代了它们在什么样的上下文中执行,亦即上下
执行环境。Javascript的作用域只有两种:全局作用域和本地作用域,本地作用
是按照函数来区分的。

十. SetTimeout与setInterval区别

因为setTimeout(表达式,延时时间)在执行时,是在载入后延迟指定时间后,去执行一次表达式,记
住,次数是一次
而setInterval(表达式,交互时间)则不一样,它从载入后,每隔指定的时间就执行一次表达式

十一. 网站性能优化的方法(高频率)

1)将css和js文件放在独立外部文件中引用
2) 使用gzip压缩网页内容
3)将CSS放在页面顶端,JS文件放在页面底端
4)使JS文件内容最小化
5)尽量减少外部脚本的使用,减少DNS查询时间
( 文件合并文件最小化/文件压缩使用 CDN 托管缓存的使用(多个域名来提供缓存))

十二. 前端由哪些部分组成(高频率)

a、网页的结构层(structural layer)由 HTML 或 XHTML 之类的标记语言负责创建。标签,也
就是那些出现在尖括号里的单词,对网页内容的语义含义做出了描述,但这些标签不包含任何关
于如何显示有关内容的信息。例如,P 标签表达了这样一种语义:“这是一个文本段。”
b、网页的表示层(presentation layer) 由 CSS 负责创建。 CSS 对“如何显示有关内容”的问
题做出了回答。
c、网页的行为层(behavior layer)负责回答“内容应该如何对事件做出反应”这一问题。这是
Javascript 语言和 DOM 主宰的领域。

十三. Jpeg、gif、png格式的优缺点,应用场景

jpg高画质(图片)
gif 色质单一(图标)
png 透明

转载于:https://juejin.im/post/5bce70f7f265da0aeb713fe6

Web前端经典面试试题(一)相关推荐

  1. 2018最新Web前端经典面试试题及答案

    本篇收录了一些面试中经常会遇到的经典面试题以及自己面试过程中遇到的一些问题,并且都给出了我在网上收集的答案.马上就要过春节了,开年就是崭新的一年,相信很多的前端开发者会有一些跳槽的悸动,通过对本篇知识 ...

  2. Web前端经典面试试题(二)

    上次由于时间有限只分享了一部分的前端面试题,所以本篇继续分享前端经典面试试题 一. 栈和队列的区别? 栈的插入和删除操作都是在一端进行的,而队列的操作却是在两端进行的. 队列先进先出,栈先进后出. 栈 ...

  3. (转)2018最新Web前端经典面试试题及答案

    javascript: JavaScript中如何检测一个变量是一个String类型?请写出函数实现 typeof(obj) === "string" typeof obj === ...

  4. 2018最新Web前端经典面试试题及答案-史上最全前端面试题(含答案)--转载

    版权声明:本文为转载文章,感谢博主小胖梅的博客,如有侵权,请联系我删除,谢谢 转载链接: https://blog.csdn.net/xm1037782843/article/details/8070 ...

  5. 最新Web前端经典面试试题(Marksheng全网最不讲武德的版本)

    第一篇 近期总结一一些面试题 都是企业的面试题笔记题 感觉薪资10k下的都会出笔试题 特别高的薪资都是直接技术面试或者是 现场编程 总结很多人的面试题,后期会对于单个知识点再说笔记详细讲解. 部分都是 ...

  6. 2019最新Web前端经典面试试题及答案,持续更新

    Ps: 文章所述内容,来源渠道平时积累以及网上摘录.按日期持续更新...目录: 转载请注明来源. -2018/6/8   1.position的定位方式 2.描述下从输入URL到整个网页加载完毕及显示 ...

  7. 2021-最新Web前端经典面试试题及答案-史上最全前端面试题(含答案)---Vue篇

    ★★★ 如何使用原生 Node.js 操做 cookie? ★★ 什么是 Node.js?我们在哪里使用它? ★★ 为什么要使用 Node.js? ★★★ Node.js 有哪些特点? ★★★ set ...

  8. 2023最新Web前端经典面试试题及答案-史上最全前端面试题(含答案)

    近期总结一一些面试题 都是企业的面试题笔记题 感觉薪资10k-15k的常见面试题 个人录制的最新Vue项目学习视频:B站 小胖梅-的个人空间_哔哩哔哩_Bilibili 红色为常见面试题 ====== ...

  9. 2021-最新Web前端经典面试试题及答案-史上最全前端面试题(含答案)---手写代码篇

    ★★★ 手写代码:实现forEach map filter reduce ★★★ 手写实现一个简易的 Vue Reactive ★★★ 手写代码,监测数组变化,并返回数组长度 ★★★ 手写原生继承,并 ...

最新文章

  1. Excel中的的经纬度坐标在地图上显示
  2. ip地址管理与子网的划分二
  3. 【归并排序】-求逆序数算法
  4. xmpp 与服务器连接并身份验证成功
  5. mysql libs 5.1.71_用python创建数据库监控平台(1)安装MySQL5.7
  6. junit:junit_JUnit和Hamcrest:在assertEquals上进行改进
  7. php输入多少数值自动乘,报表数据填报中的自动计算
  8. android surfaceflinger 代码,Android 中的framebuffer和SurFaceFlinger的关系
  9. 通过造车来了解软件开发模式
  10. xml,String互转
  11. PAT (Basic Level) Practice1016 部分A+B
  12. 2.7 tf.data创建Dataset以及数据处理教程——tensorflow2
  13. cdr轮廓字怎么把轮廓拆出来_教您用CDR将图片转为手绘素描效果!
  14. Eclipse常用便捷设置
  15. Compilation failed to complete
  16. 什么是迭代计算机编程,什么是递归?什么是迭代?
  17. 基于单片机的电子时钟设计(keil+protues仿真,含代码及原理图)
  18. 自适应直方图均衡(CLAHE) 代码及详细注释【OpenCV】
  19. java new jsonparser_java – JSONParser无法解析为某种类型
  20. C语言数组名、数组名取地址、数组首元素地址之间的关系

热门文章

  1. 控制文件的多路复用技术
  2. Elasticsearch的Shield插件
  3. sql server 2005 中的同义词
  4. 远程访问mysql设置
  5. UITableView 局部刷新
  6. glVertexPointer
  7. Asp.net mvc中的Ajax处理
  8. http://blog.csdn.net/fanzhonglei
  9. 完全详解--Silverlight 下载文件
  10. python requests模块_Python 爬虫教程 requests 模块