add file:变量提升

This commit is contained in:
qianguyihao
2018-03-21 21:45:10 +08:00
parent e3ef193e5d
commit 575b853d31
32 changed files with 930 additions and 37 deletions

View File

@@ -0,0 +1,61 @@
## 前言
一、基础知识:
- ES 6常用语法class 、module、Promise等
- 原型高级应用:结合 jQuery 和 zepto 源码
- 异步全面讲解:从原理到 jQuery 再到 Promise
二、框架原理:
- 虚拟DOM存在价值、如何使用、diff算法
- MVVM vueMVVM、vue响应式、模板解析、渲染
- 组件化 React组件化、JSX、vdom、setState
三、混合开发:
- hybrid
- H5
- 前端客户端通讯
内容优势
- 面试官爱问“源码”、“实现”。
- 介绍常用框架实现原理
- 介绍hybrid原理和应用
## ES6
- 模块化的使用和编译环境
- Class与JS构造函数的区别
- Promise的用法
- ES6其他常用功能
## 异步
- 什么是单线程,和异步有什么关系

View File

@@ -0,0 +1,86 @@
## 前言
### ES6的主要内容
- 模块化的使用和编译环境
- Class与JS构造函数的区别
- Promise的用法
- ES6其他常用功能
本文来讲“模块化的使用和编译环境”。
### 面试常见问题
- ES6 模块化如何使用,开发环境如何打包
- Class 和普通构造函数有何区别
- Promise 的基本使用和原理
- 总结一下 ES6 其他常用功能
### ES6的现状
- 开发环境已经普及使用
- 浏览器环境却支持不好(需要开发环境编译)
- 内容很多,重点了解常用语法
- 面试:开发环境的使用 + 重点语法的掌握
## 模块化的基本语法
1util1.js
```javascript
export default var a = 100;
export function foo {
console.log('util1-foo');
}
```
`export default`命令用于指定模块的默认输出。显然,一个模块只能有一个默认输出。
有了默认输出之后其他模块加载该模块时import命令可以为该匿名变量/函数,起**任意的名字**。
上面的代码中,默认输出是一个变量。当然,我们也可以换成**默认输出一个匿名函数**
```javascript
export default function() {
console.log('util1-function');
}
```
2util2.js
```javascript
export var myUtil2 = 'this is util2';
export function fn1() {
console.log('util2-fn1');
}
export function fn2() {
console.log('util2-fn2');
}
```
上方代码中,我把一个变量和两个函数作为了导出。
3index.js

View File

@@ -0,0 +1,39 @@
## Class和普通构造函数有何区别
> 我们经常会用ES6中的Class来代替JS中的构造函数做开发。
- Class 在语法上更加贴合面向对象的写法
- Class 实现继承更加易读、易理解
- 更易于写 java 等后端语言的使用
- 本质还是语法糖,使用 prototype

View File

@@ -0,0 +1,56 @@
## 前言
vdom 是 vue 和 React 的**核心**,先讲哪个都绕不开它。
vdom 比较独立,使用也比较简单。
如果面试问到 vue 和 React 和实现,免不了问 vdom
- vdom 是什么?为何会存在 vdom
- vdom 的如何应用,核心 API 是什么
- 介绍一下 diff 算法
## 什么是 vdom
### 什么是 vdom
DOM操作是昂贵的。
步骤一用JS对象模拟DOM树
步骤二比较两棵虚拟DOM树的差异
步骤三把差异应用到真正的DOM树上

View File

@@ -0,0 +1,94 @@
## 前言
MVVM的常见问题
- 如何理解MVVM
- 如何实现MVVM
- 是否解读过Vue的源码
题目:
- 说一下使用 jQuery 和使用框架的区别
- 说一下对 MVVM 的理解
- vue 中如何实现响应式
- vue 中如何解析模板
- vue 的整个实现流程
## 说一下使用 jQuery 和使用框架的区别
## MVVM / Vue
## MVVM模式
- Model负责数据存储
- View负责页面展示
- View Model负责业务逻辑处理比如Ajax请求等对数据进行加工后交给视图展示
数据驱动视图只关心数据变化DOM操作被封装。
### MVVM / Vue的三要素
- **响应式**vue 如何监听到 data 的每个属性变化?
- **模板引擎**vue 的模板如何被解析,指令如何处理?
- **渲染**vue 的模板如何被渲染成 html ?以及渲染过程
### 什么是虚拟 DOM
传统的web开发是利用 jQuery操作DOM这是非常耗资源的。
我们可以在 JS 的内存里构建类似于DOM的对象去拼装数据拼装完整后把数据整体解析一次性插入到html里去。这就形成了虚拟 DOM。
Vue1.0没有虚拟DOMVue2.0改成了基于虚拟DOM。
### 如何理解MVC
C指的是Controller。控制器能够控制视图的变化也能控制数据的变化。
单项通信。一般情况下是view 发出命令给控制器,控制器处理业务逻辑后控制 ModelModel再去改 view。
## hybrid
### 使用场景
不是所有的场景都适合用 hybrid
- 使用原生应用:体验要求极致,变化不频繁(如头条的首页)
- 使用 hybrid体验要求高变化频繁如新闻详情页
- 使用H5体验无要求、不常用比举报、反馈等

View File

@@ -2,12 +2,14 @@
## JavaScript
### 存储相关请描述以下cookie、localStorage、sessionStorage的区别
### 存储相关请描述以下cookie、localStorage、sessionStorage的区别
在H5之前cookie一直都是本地存储的一个重要的方法。直到后面的两个出现了 就开始用后面的两个做本地存储。
> 在H5之前cookie一直都是本地存储的一个重要的方法。直到后面的两个出现了 就开始用后面的两个做本地存储。
**1、cookie**
@@ -29,9 +31,31 @@ cookie用于存储时的缺点
## HTML5
### HTML5新增了哪些内容或API使用过哪些
新元素:
- `<section>``<footer>``<header>`
新的api
- 网络存储: sessionStorage 和 localStorage
参考链接:
- [笔记:阿里、网易、滴滴共十次前端面试碰到的问题](https://zhoukekestar.github.io/notes/2017/06/07/interview-answers.html)
## CSS
### 如何让一个div元素隐藏你能想到的方式有几种
-
@@ -47,6 +71,43 @@ cookie用于存储时的缺点
## 网络相关
### 浏览器输入url到显示内容有哪些过程
1浏览器解析url。包括协议、域名、端口号、资源路径、参数查询
2DNS解析
3TCP握手
4HTTP请求
5服务器处理请求
6浏览器渲染DOM tree、CSS rule tree、render tree。
7display
参考链接:
- [笔记:阿里、网易、滴滴共十次前端面试碰到的问题](https://zhoukekestar.github.io/notes/2017/06/07/interview-answers.html)
- [what-happens-when-zh_CN](https://github.com/skyline75489/what-happens-when-zh_CN#dns)
- [码农翻身 | 小白科普:从输入网址到最后浏览器呈现页面内容,中间发生了什么?](https://mp.weixin.qq.com/s/3_DZKSP492uq9RfQ3eW4_A)
- 从输入URL到页面加载发生了什么<https://segmentfault.com/a/1190000006879700>
## GitHub
@@ -67,11 +128,6 @@ cookie用于存储时的缺点
## 浏览器输入hrl有哪些过程
- [码农翻身 | 小白科普:从输入网址到最后浏览器呈现页面内容,中间发生了什么?](https://mp.weixin.qq.com/s/3_DZKSP492uq9RfQ3eW4_A)
- 从输入URL到页面加载发生了什么<https://segmentfault.com/a/1190000006879700>

View File

@@ -28,4 +28,15 @@
- [2017年BAT面试题大全集](http://www.bijishequ.com/detail/421600?p=)
- [bat前端面试内容记录](https://www.jianshu.com/p/d94d5290328c)
- [bat前端面试内容记录](https://www.jianshu.com/p/d94d5290328c)
### 2018-03-18
- [笔记:阿里、网易、滴滴共十次前端面试碰到的问题](https://zhoukekestar.github.io/notes/2017/06/07/interview-answers.html)
- [笔记补充:阿里、网易、滴滴共十次前端面试碰到的问题](https://zhoukekestar.github.io/notes/2017/07/06/interview-answers.html)