目录 |
---|
一:目录 |
二:前言 |
2-1: 关于dog蛋 |
2-2 :写给大家 |
三 HTML |
3.1 HTML 语义化 |
3.2 HTML5 新标签 |
3.3 常见浏览器及其内核 |
四 CSS |
4.1 CSS 盒模型 |
4.2 CSS 单位 |
4.3 CSS 选择器及优先级 |
4.4 CSS 常见布局 |
4.5 CSS3 新特性 |
4.6 BFC |
五 JavaScript |
5.1 原型与原型链 |
5.2 闭包 |
5.3 浅拷贝与深拷贝 |
5.4 防抖与节流 |
5.5 ES6 |
5.6 promise |
5.7 Generator,async/await相关 |
5.8 数组操做 |
六 Vue |
6.1 MVVM |
6.2 生命周期 |
6.3 双向数据绑定 |
6.4 Virtual DOM |
6.5 template 编译 |
6.6 key |
6.7 nextTick |
6.8 父子组件通信 |
6.9 父子组件生命周期 |
6.10 keep-alive |
6.11 vuex用法 |
七 浏览器 |
7.1 一个url从输入到显示的过程 |
7.2 重绘与回流 |
7.3 内存泄漏 |
7.4 浏览器兼容性 |
八 网络协议 |
8.1 HTTP/HTTPS |
8.2 HTTP 状态码 |
8.3 跨域问题 |
首先对于你们所说的互联网寒冬本蛋不发表任何意见,此图为证 css
你们好,我是前端经验长达三年多的前端dog蛋,会唱跳,敲代码,喜欢ctrl-c,ctrl-v,hah~html
虽然已通过了金三银四但身边找工做的小伙伴仍是不少的,不少小伙伴担忧如今是招聘淡季怕很差找工做,其实换个思惟方式,既然如今是招聘淡季那确定也是求职淡季,因此相对来讲仍是好找的,但愿找工做的小伙伴们放平心态,对每次的面试都要进行记录和总结,相信很快就能够收到满意的offer的。前端
<header>
,<footer>
,<<aside>
,<nav>
,<canvas>
,<video>
等vue
Chrome | Firefox | Safari | IE | Opera | |
---|---|---|---|---|---|
内核 | Blink | Gecko | Webkit | Trident | Blink |
能够经过css3新增的的box-sizing属性进行设置:css3
/* 标准模型 */git
box-sizing:content-box;es6
/IE模型/github
box-sizing:border-box;面试
border-box 中,整个 div 的宽、高,包括 margin、padding、border。vuex
content-box 中,整个 div 的宽、高,则不包括上面元素。
单位 | 描述 |
---|---|
px | 像素。计算机屏幕上的一个点为 1px。 |
em | 相对单位。相对于父元素计算,假如某个 p 元素为 font-size: 12px,在它内部有个 span 标签,设置 font-size: 2em,那么,这时候的 span 字体大小为:12 * 2 = 24px |
rem | 相对单位。相对于根元素 html 的 font-size,假如 html 为 font-size: 12px,那么,在其当中的 div 设置为 font-size: 2rem,就是当中的 div 为 24px。 |
rpx | 微信小程序相对单位。1rpx = 屏幕宽度 / 750 px。在 750px 的设计稿上,1rpx = 1px。 |
1:通配符:*
2:ID 选择器:#ID
3:类选择器:.class
4:元素选择器:p、a 等……
5:后代选择器:p span、div a 等……
6:伪类选择器:a:hover 等……
7:属性选择器:input[type="text"] 等……
8:子元素选择器:li:firth-child、p:nth-child(1) 等……
CSS 选择器权重
!important -> 行内样式 -> #id -> .class -> 元素和伪元素 -> * -> 继承 -> 默认
transform:旋转、缩放、移动或者倾斜
animation:动画
gradient:渐变
shadow:阴影
border-radius:圆角
防抖: 任务频繁触发的状况下,只有任务触发的间隔超过指定间隔的时候,任务才会执行(有个输入框,输入以后会调用接口,获取联想词。可是,由于频繁调用接口不太好,因此咱们在代码中使用防抖功能,只有在用户输入完毕的一段时间后,才会调用接口,出现联想词。)
节流:指定时间间隔内只会执行一次任务。 使用场景:
不防抖和节流会损害页面性能
promise实现原理:手把手教你实现一个完整的 Promise
阮一峰:Generator,async,Thunk,co 系列
具体步骤: 第一步:须要observe的数据对象进行递归遍历,包括子属性对象的属性,都加上setter和getter 这样的话,给这个对象的某个值赋值,就会触发setter,那么就能监听到了数据变化
第二步:compile解析模板指令,将模板中的变量替换成数据,而后初始化渲染页面视图,并将每一个指令对应的节点绑定 更新函数,添加监听数据的订阅者,一旦数据有变更,收到通知,更新视图
第三步:Watcher订阅者是Observer和Compile之间通讯的桥梁,主要作的事情是:
一、在自身实例化时往属性订阅器(dep)里面添加本身
二、自身必须有一个update()方法
三、待属性变更dep.notice()通知时,能调用自身的update()方法,并触发Compile中绑定的回调,则功成身退。
第四步:MVVM做为数据绑定的入口, 整合Observer、 Compile和Watcher三者, 经过Observer来监听本身的model 数据变化,经过Compile来解析编译模板指令,最终利用Watcher搭起Observer和Compile之间的通讯桥梁,达到 数据变化->视图更新;视图交互变化(input)->数据model变动的双向绑定效果。
详情步骤: 首先,经过compile编译器把template编译成AST语法树(abstractsyntaxtree即源代码的抽象语法结构的树状表现形 式),compile是createCompiler的返回值,createCompiler是用以建立编译器的。另外compile还负责合并option。
而后,AST会通过generate(将AST语法树转化成renderfuntion字符串的过程)获得render函数,render的返回值是 VNode,VNode是Vue的虚拟DOM节点,里面有(标签名、子节点、文本等等)
子-> 父: on+emit
父<>子: on.sync(语法糖)来的
兄弟 : event bus | vuex
<component:is='curremtView' keep-alive></component>
vuex | vue |
---|---|
state | data |
getters | computed |
mutations | methods(同步操做) |
actions | methods(异步操做 |
1-1:DNS解析
1-2:TCP三次握手
1-3:发送请求,分析url,设置请求报文(头,主题)
1-4:把请求回来的html代码 通过解析生成DOM树
1-5:解析css代码生成,生成样式树
1-6:结合DOM和style树生成渲染树
2.定时器:未被正确关闭,致使所引用的外部变量没法被释放。
3.事件监听:没有正确销毁(低版本浏览器可能出现)。
4.闭包:会致使父级中的变量没法被释放。
5.DOM 引用:DOM 被删除时,内存中的引用未被正确清空。
如何查看内存变化状况?
使用 Chrome 的 Timeline(新版本 Performance)进行内存标记,可视化查看内存的变化状况,找出异常点。
PC端兼容性
移动端兼容性
HTTPS:HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的 HTTP 通道,简单讲是 HTTP 的安全版。即 HTTP 下加入 SSL 层,HTTPS 的安全基础是 SSL,所以加密的详细内容就须要 SSL。 它是一个 URI scheme(抽象标识符体系),句法类同 http: 体系。用于安全的HTTP数据传输。https:URL 代表它使用了 HTTP,但 HTTPS 存在不一样于 HTTP 的默认端口及一个加密/身份验证层(在 HTTP 与 TCP 之间)。这个系统的最初研发由网景公司进行,提供了身份验证与加密通信方法,如今它被普遍用于万维网上安全敏感的通信,例如交易支付方面。
而后,常见的状态码: