博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
前端面试手册
阅读量:5223 次
发布时间:2019-06-14

本文共 2583 字,大约阅读时间需要 8 分钟。

分别从HTML、CSS、JavaScript、综合四个方面总结,后续持续更新


HTML部分


  • Doctype的作用?

文档声明,不存在或格式不正确会导致文档以兼容模式呈现

标准模式的排版和JS运作模式都是以该浏览器支持的最高标准运行
兼容模式页面以宽松的向后兼容的方式显示
HTML5不基于SGML,因此不需要对DTD进行引用

  • 行内、块级、 空(void)元素

行内:a b span img input select strong

块级:div ul ol li dl dt dd h1-6 p
空: br hr img input link meta

  • 导入样式link和@import的区别

作用范围、加载时机、兼容性三方面不同

  • CSS和JS的放置位置

CSS放在head防止页面回流和重绘,JS放body末尾防止页面阻塞

  • 标签语义化

用正确的标签做正确的事情,便于对浏览器、搜索引擎解析

  • HTML5的离线储存

localStorage 长期存储数据,浏览器关闭后数据不丢失

sessionStorage 数据在浏览器关闭后自动删除
cookie在浏览器和服务器间来回传递,大小有限制


CSS部分


  • 盒模型

内容(content)、填充(padding)、边界(margin)、 边框(border)

两种:标准|IE(宽高含边框),box-sizing:content-box|border-box

  • 选择符

ID、类、标签、属性、伪类、后代、子类、相邻、通配

important 》ID》Class》Tag

  • 浮动和定位

浮动脱离标准文档流,造成父元素塌陷

清除浮动:overflow,clear,height
定位:relation,absolute,fixed,static(inherit)

  • 垂直居中布局

表格法table-cell,弹性布局flex,绝对定位margin,相对定位translate

  • 渐进增强和优雅降级

针对低版本浏览器进行构建页面,保证最基本的功能,然后再针对高级浏览器进行效果、交互等改进和追加功能达到更好的用户体验。

开始就构建完整的功能,然后再针对低版本浏览器进行兼容。

  • CSS3新特性

圆角、阴影、文字特效、线性渐变、变换、高级选择器、多背景、RGBA


JS部分


  • Undefined和null的区别

Undefined未赋值,Null尚未存在的对象

用typeof来判断五种原始类型:String、Number、Boolean、Undefined、Null,用instanceof来判断继承关系

  • 相等和全等的区别

相等默认进行隐式转换,全等不会

  • 字符串的常用方法

charAt 返回指定位置

concat 连接
indexOf 检索
replace 替换
slice 提取
split 分割
substr 提取
toLowerCase 转小写
toUpperCase 转大写

  • 数组的常用方法

concat 连接

join 拼接
pop 删除尾
push 添加尾
shift 删除头
unshift 添加头
reverse倒叙
sort 排序
slice 截取
splice 替换

  • 数组去重

基础循环法、排序相邻法、对象属性法、下标查询法(indexOf)

  • 排序算法

冒泡:相邻比较后,逐个冒泡

选择:查找最小值后,逐个交换
插入:逐个对比后,再插入

  • new操作符

创建一个空对象,并且 this 变量引用该对象,同时还继承了该函数的原型

属性和方法被加入到 this 引用的对象中
新创建的对象由 this 所引用,并且最后隐式的返回 this

  • 作用域、闭包和this

全局作用域和函数作用域,内部可访问外部,外部不能访问内部

在函数A内部定义函数B并作为返回值,当B在A之外被执行时就会形成闭包
this一般情况下指全局对象。 当作为方法调用,那么this就是指这个对象

  • apply和call

在特定的作用域中调用,等于设置函数体内this对象的值,以扩充函数赖以运行的作用域

接收参数的方式不同

  • JS框架和原理

React单向数据,Vue结合angular和react的优点,组件化、指令、双向绑定

vue采用数据劫持结合发布订阅模式,通过Object.defineProperty()劫持各个属性的setter
、getter,在数据变动时发布消息给订阅者,触发相应的监听回调。
VUE生命周期:Created创建,Mounted编译,Update更新,Destory销毁

  • AJAX原理

通过XmlHttpRequest对象向服务器发异步请求,获得数据后操作DOM更新页面

Open》onreadystatechange》send

  • 跨域和JsonP原理

浏览器同源策略,同协议|域名|端口,解决方案:后端代理|设置CORS头|Jsonp等

JSONP是通过动态创建script实现的,本质不属于AJAX技术。

  • DOM操作

创建:createElement,增删改:innerHTML,

查找:getElementById/getElementsByName/getElementsByTagName

  • CMD、AMD和模块化

AMD 是提前执行,CMD 是延迟执行

模块化是通过立即执行函数来进行的

  • VUE组件通信

路由参数、storage、父传子props&子传父emit、vuex


综合


  • 前端性能优化

加载:合并请求、缓存资源、外部文件、文件压缩、按需加载

图片:压缩、代替(css3、SVG、Iconfont)、webp、png8、base64
样式:头部引入、避免内联、避免重设图片大小、优化选择符
脚本:减少重绘和回流、缓存dom和length、事件代理、ID选择
渲染:优化DOM结构、CSS3动画触发GPU

  • 构建工具和原理

gulp基于流的自动化构建工具,Webpack基于模块的自动化打包工具

  • 安卓和IOS浏览器兼容

IOS定位fixed,图片加载失败

  • HTTP请求

GET、POST、PUT、DELETE、HEAD、OPTIONS

  • TCP和UDP

TCP稳定可靠的连接,通过三次握手四次释放,UDP不稳定的连接

转载于:https://www.cnblogs.com/gulei/p/10178431.html

你可能感兴趣的文章
数据库锁机制及乐观锁,悲观锁的并发控制
查看>>
图像处理中双线性插值
查看>>
RobHess的SIFT代码解析之RANSAC
查看>>
03 线程池
查看>>
201771010125王瑜《面向对象程序设计(Java)》第十三周学习总结
查看>>
手机验证码执行流程
查看>>
python 基础 ----- 变量
查看>>
设计模式课程 设计模式精讲 2-2 UML类图讲解
查看>>
Silverlight 的菜单控件。(不是 Toolkit的)
查看>>
:hover 鼠标同时触发两个元素变化
查看>>
go语言学习十三 - 相等性
查看>>
Idea 提交代码到码云(提交到github也大同小异)
查看>>
c#连接excel2007未安装ISAM解决
查看>>
Mono 异步加载数据更新主线程
查看>>
初识lua
查看>>
我是插件狂人,jDuang,jValidator,jModal,jGallery
查看>>
张季跃 201771010139《面向对象程序设计(java)》第四周学习总结
查看>>
如何解除循环引用
查看>>
android中fragment的使用及与activity之间的通信
查看>>
字典【Tire 模板】
查看>>