web前端面试题汇总(一)
来源:互联网 发布:美国队长身材 知乎 编辑:程序博客网 时间:2024/05/16 15:41
话不多说,直接上干货
1. 浏览器页面有哪三层组成,作用?
2. HTML5的优缺点
优点:
- 网络标准统一
- 多设备,跨平台
- 视频和音频特性给站点带来更多的多媒体元素
- 在网站的爬取和索引的时候,对SEO很友好
- 被大量运用到移动端和游戏
缺点:
- 安全性差。web storage.web socket这些功能很容易被黑客利用,来盗取用户的信息和资料。
- 完善性差。许多特性在各浏览器的支持程度不一样。
- 浏览器兼容性:IE9以下几乎都不兼容。
- 性能。某些平台上的引擎问题导致HTML5性能地下。
3. HTML5有哪些新特性,移除了哪些元素
ps:由于东西太多,所以做简要性回答
HTML5主要新增四类元素:
结构性元素:section,header
级块性元素:dialog,code
行内语义性元素:time,progress
交互性元素:menu,details
HTML5主要废除三种元素
能用CSS代替的元素:big,font
frame框架:frameset,frame,noframes
部分浏览器支持的元素:blink,dir
4. 各浏览器的内核
5. 每个HTML文件开头都有个东西,Doctype,作用?
这个声明位于文档中的最前面的位置。作用是告诉浏览器按照何种规范来解析页面。
Doctype不存在或者格式不正确会导致文档以混杂模式呈现.
6. 对web标准以及w3c的理解和认识
- 标签闭合,小写,不乱嵌套。提高搜索机器人几率,使用外链css和js脚本,结构行为表现的分离。
- 文件下载与页面速度更快,内容能被更多的用户所访问,被更广泛的设备所访问,更少的代码和组建。
- 容易维护,改版方便,提高网站的易用性。
7. 说说你对HTML5语义化的理解
1)什么是语义化
根据内容的结构化选择合适的标签,便于开发者阅读和编写代码的同时,让浏览器的爬虫和机器很好的解析。
2)为什么要语义化
- 用户体验好。在没有css时,页面也能很好的呈现出内容结构
- 有利于SEO
- 方便其他设备解析
- 便于团队开发和维护。语义化具有可读性,减少团队的差异性。
8. css中link和@import的区别是
9. 盒模型
w3c 盒子模型的范围包括 margin、border、padding、content,并且 content 部分不包含其他部分。
ie 盒子模型的范围也包括 margin、border、padding、content,和标准 w3c 盒子模型不同的是:ie 盒子模型的 content 部分包含了 border 和 pading。
10. DOM常见操作
- getElementById(id) 通过id来访问某一元素
- getElementsByName(name) 通过name来取得某一堆元素(作为数组)(仅用于取得input、radio、 checkbox等元素)
- getElementsByTagName(tagname) 通过TagName也就是标签名来取得
- appendChild(node) 向当前的元素(应该叫对象比较恰当)追加节点。
- removeChild(childreference) 删除当前节点的子节点,返回被删除的节点。
- replaceChild(newChild, oldChild) 把当前节点的一个子节点换成另一个节点
- insertBefore(selector) 方法在被选元素前插入 HTML 元素
11. null和undefined的区别
null表示”没有对象”,即该处不应该有值。典型用法是:
(1) 作为函数的参数,表示该函数的参数不是对象。(2) 作为对象原型链的终点。(3) 转为数字时为0
undefined表示”缺少值”,就是此处应该有一个值,但是还没有定义。典型用法是:
(1)变量被声明了,但没有赋值时,就等于undefined。(2) 调用函数时,应该提供的参数没有提供,该参数等于undefined。(3)对象没有赋值的属性,该属性的值为undefined。(4)函数没有返回值时,默认返回undefined。(5)转为数值时为NaN
12. json是什么
JSON: JavaScript Object Notation(JavaScript 对象表示法)。JSON是一种轻量级的数据交换格式,基于JavaScript的一个子集,数据格式简单,易于读写,占用带宽小。
13. 优雅降级和渐进增强
优雅降级:Web站点在所有新式浏览器中都能正常工作,若使用老式浏览器,则代码会检查以确认他们是否能正常工作。
渐进增强:从被所有浏览器支持的基本功能开始,逐步地增加那些只有新式浏览器才支持的功能。
14. http状态码
- 200: 请求成功
- 304:自从上次被请求过,请求的页面未修改过
- 403:(Forbidden)服务器已经理解请求,但禁止访问
- 404:(not found)请求失败
- 408:(请求超时) 服务器等候请求时发生超时
- 500: (Internal Server Error)服务器无法处理请求
15. ajax的过程(Asynchronous JavaScript + XML)
(1)创建`XMLHttpRequest`对象,也就是创建一个异步调用对象. (2)创建一个新的`HTTP`请求,并指定该`HTTP`请求的方法、`URL`及验证信息. (3)设置响应`HTTP`请求状态变化的函数. (4)发送`HTTP`请求. (5)获取异步调用返回的数据. (6)使用JavaScript和DOM实现局部刷新. var xmlHttp = new XMLHttpRequest(); xmlHttp.open('GET','demo.php','true'); xmlHttp.send() xmlHttp.onreadystatechange = function(){ if(xmlHttp.readyState === 4 & xmlHttp.status === 200){ } }
16. get和post的区别
17. 常见的页面布局
- 双飞翼布局(三列,中间宽自适应,两边定宽)
- 多栏布局(利用浮动实现)
- 瀑布流布局(类似蘑菇街)
- 响应式布局(一个网站可以兼容多个终端)
- web前端面试题汇总(一)
- web前端面试题汇总(二)
- Web前端面试题汇总
- 前端面试题汇总(一)
- 前端面试题汇总(一)
- 前端面试题整理汇总(一)
- WEB前端常见面试题汇总
- web前端面试题及答案汇总
- web前端开发工程师-面试题汇总
- web前端工程师面试题汇总
- 前端面试题汇总
- 前端面试题汇总
- 前端面试题汇总
- 前端面试题汇总
- web前端面试题及答案整理(一)
- web前端面试题(数组一大一小排列)
- WEB前端开发工程师面试题(一)
- Web前端开发面试题系列一
- Spring依赖注入方式
- 内部排序(2)——交换类排序
- sessionStorage 、localStorage 和 cookie比较
- python 常用模块的使用
- 基本正则表达式与扩展正则表达式
- web前端面试题汇总(一)
- tomcat 8配置HTTPS
- 650. 2 Keys Keyboard
- C++之处理数据
- html css
- webpack使用小技巧
- 抽象基类和纯虚函数
- POJ3261 Milk Patterns(后缀数组,二分)
- 玲珑学院OJ 1152-Expected value of the expression(概率DP)