美文网首页
前端知识点汇总

前端知识点汇总

作者: 一米阳光kk | 来源:发表于2019-03-31 15:42 被阅读0次


一、 JS高级

1.作用域/作用域链

2.原型/原型链

3.闭包

4.This指向call/apply

5.javascript 运行机制

6.Ajax原理、Axios库

7.同步/异步编程

8.jQuery源码学习

二、ES6

1.字符串、数组对象扩展API

2.变量扩展:let 、const的解构赋值,块级作用域

3.函数扩展:箭头函数默认参数、rest参数

4.展开运算符、模板字符串

5.Set、map数据结构

6.迭代器和生成器函数next和yield的理解

7.Proxy对象属性代理器:属性的读取(get)和设置(set)相关操作

8.Promise对象、异步编程的解决方案

9.Async+await:异步编程的终极方案 promise+generator的语法糖

10.Class语法、构造函数的语法糖

11.模块化编程export + import 的导入和导出

三、DOM

四、浏览器BOM

1.浏览器的构成和运行机制

2.浏览器内核

3.浏览器交互:BOM和DOM相关的webapi、监听事件

4.浏览器缓存机制

5.浏览器的渲染原理

6.浏览器的安全行:跨域和攻击

五、模块化编程AMD/UMD/COMMONJS

1.

六、关于网络协议

1. http协议

2. cookie、session、token

七、HTML/CSS/LESS

1.HTML

1.1 Html语义化标签的理解、结构化的理解;

1.2 SEO优化

1.3 H5新增属性,如data、类名className;新增表单元素,拖拽drag

2. CSS

1、css选择器(三大特性)

2、BFC机制

3、盒子模型

4、css模块化开发(封装);SCSS和LESS的使用

5、屏幕适配以及页面自适应

6、css3中心轴的选择器

7、css3新增属性,transform、transition、animation等

4. 关于布局

1. 标准文档流(padding + margin + 负margin) + 浮动float + 定位left + right + top + bottom

2. 百分比布局: px单位用%num 代替,占父级元素的百分比

3. flex弹性布局: 主轴、辅助轴的几个数学

4. grid栅格布局: 使用框架中的类名来替代,本质上还是百分比布局

八、NODE/EXPRESS

九、Webpack

1.打包原理

十、VUE

1.Vue双向绑定数据的原理

vue实现数据双向绑定主要是:采用数据劫持结合“发布者-订阅者”模式的方式,通过Object.defineProperty()来劫持各个属性的setter、getter,在数据变动时发布消息给订阅者,触发相应监听回调

2.解释单向数据流和双向数据绑定

单向数据流:顾名思义,数据流是单向的。数据流动方向可以跟踪,流动单一,追查问题的时候可以更快捷。缺点就是写起来不太方便。要使UI发生变更就必须创建各种action来维护对应的state。

双向数据绑定:数据直接是相通的, 将数据变更的操作隐藏在框架内部。优点是在表单交互较多的场景下,会简化大量与业务无关的代码。缺点就是无法追踪局部状态的变化,增加了出错时debug的难度

3.Vue 生命周期的理解

    beforeCreate: 在实例创建之前执行

    create:在实例创建、数据加载后,能初始化数据,DOM渲染之前执行

    beforeMount:虚拟dom已创建完成,在数据渲染前最后一次更改数据

    Mounted:页面、数据渲染完成,真实DOM挂载完成

    beforeUpdate:重新渲染之前触发

    Updated: 数据已更改完成,DOM也重新reder完成,更改数据会陷入死循环

    beforeDestory和destoryed:前者是销毁实例前执行(实例仍然完全可用),后者则是销毁后执行。

4.组件通信

4.1子组件通过props属性,绑定父组件数据,实现双方通信

4.2子组件向父组件通信

将父组件的事件在子组件通过$emit触发

4.3非父子、兄弟组件之间的数据传递

如:EventBus

5.v-if和v-show区别

使用v-if 的时候,如果值为false, 那么页面将不会有html标签生成

v-show则是不管值为true,还是false, html元素都会存在,只是css中display显示或隐藏

6.NextTick

$nextTick 是在下次DOM更新循环结束之后执行延迟回调,在修改数据之后使用$nextTick,则可以在回调中获取更新后的DOM

7.Vue组件data为什么必须是函数

因为js本身的特性带来的,如果data是一个对象,那么由于对象本身属于引用类型,当我们修改其中的一个属性时,会影响到所有vue实力的数据。如果将data作为一个函数返回一个对象,那么每一个实例的data属性都是独立的,不会相互影响了。

8.Computed/methods区别

我们可以将同一个函数定义为一个method或者一个计算属性。对于最终的结果,两种方式是相同的。

不同点:

-- computed:计算属性是基于它们的依赖进行缓存的,只有在它的相关依赖发生改变时才会重新求值

-- methods:只要发生重新渲染,method调用总会执行该函数

9.jQuery、vue有什么不同

Jquery专注视图层,通过操作DOM去实现页面的一些逻辑;vue专注于数据层,通过数据的双向绑定,最终表现在DOM层面,减少DOM操作。

Vue 使用了组件化思想,使得项目子集职责清晰,提高了开发效率,方便重复利用,便于协同开发

10.Vue中key的作用

Key的特殊属性主要用在vue的虚拟DOM算法,在新旧nodes对比时辨识VNodes。如果不使用key,vue会使用一种最大限度减少动态元素并且尽可能地尝试修复/再利用相同类型元素的算法。使用key,它会基于key的变化重新排列元素顺序,并且会移除key不存在的元素

有相同父元素的子元素必须有独特的key。重复的key会造成渲染错误

11.插槽slot

12.Vuex

13.Vue-router

搭建SPA单页应用

1.路由组件配置

2.路由间传参

3.路由跳转

4.路由导航守卫

14.Vue-cli

15.Vue 深入、源码阅读

1.数据响应式原理

2.Virtual dom

3.Diff算法

4.NextTick等等

十一、面向对象的编程思想

1、类的抽象

2、对象的封装、继承

3、为了更好的去管理数据、分类数据,实现高内聚、低耦合

十二、设计模式

1、常用设计模式:单例、工厂

十三、数据结构/算法

1.学习常用的排序搜索算法、顺序表、链表、栈、队列、树、堆

十四、系统编程

1.LINUX命令行操作、系统文件管理

2.多任务、多线程、多进程、协程、并发、并行、串行、同步、异步等概念的理解

十五、Canvas/Svg/D3.js (了解基本用法)

十六、GIT简单操作原理

十七、TypeScript(学习)

相关文章

网友评论

      本文标题:前端知识点汇总

      本文链接:https://www.haomeiwen.com/subject/lcbybqtx.html