2018-06-11HTTP九种 “姿势” 让你彻底解决跨域问题同源策略同源策略 SOP(Same origin policy)是一种约定,由 Netscape 公司 1995 年引入浏览器,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,浏览器很容易受到 XSS、CSRF 等攻击。所谓同源是指 “协议 + 域名 + 端口” 三者相同,即便两个不同的域名指向同一个 ip 地址,也非同源。 阅读全文…
2018-03-28Vue模拟 Vue 手写一个 MVVMMVVM 的前世今生MVVM 设计模式,是由 MVC(最早来源于后端)、MVP 等设计模式进化而来,M - 数据模型(Model),VM - 视图模型(ViewModel),V - 视图层(View)。在 MVC 模式中,除了 Model 和 View 层以外,其他所有的逻辑都在 Controller 中,Controller 负责显示页面、响应用户操作、网络请求及与 Model 的交互,随着业务的增加和产品的迭代,Controller 中的处理逻辑越来越多、越来越复杂,难以维护。为了更好的管理代码,为了更方便的扩展业务,必须要为 Controller “瘦身”,需要更清晰的将用户界面(UI)开发从应用程序的业务逻辑与行为中分离,MVVM 为此而生。很多 MVVM 的实现都是通过数据绑定来将 View 的逻辑从其他层分离,可以用下图来简略的表示。 阅读全文…
2018-03-25异步浅析 event-loop 事件轮询浏览器中的事件轮询JavaScript 是一门单线程语言,之所以说是单线程,是因为在浏览器中,如果是多线程,并且两个线程同时操作了同一个 Dom 元素,那最后的结果会出现问题。所以,JavaScript 是单线程的,但是如果完全由上至下的一行一行执行代码,假如一个代码块执行了很长的时间,后面必须要等待当前执行完毕,这样的效率是非常低的,所以有了异步的概念,确切的说,JavaScript 的主线程是单线程的,但是也有其他的线程去帮我们实现异步操作,比如定时器线程、事件线程、Ajax 线程。在浏览器中执行 JavaScript 有两个区域,一个是我们平时所说的同步代码执行,是在栈中执行,原则是先进后出,而在执行异步代码的时候分为两个队列,macro-task(宏任务)和 micro-task(微任务),遵循先进先出的原则。 阅读全文…
2017-12-14GitGit 命令总结,从零到熟悉什么是 Git?Git 是一个免费的开源分布式版本控制系统,它的设计目的是为了速度和效率的处理从小型到大型的项目;Git 可以帮我们管理我们的代码,记录历史,只要代码提交到 Git 上就永久不会丢失,可以随时 “穿越”(回到之前的某一个版本);可以多端共享,团队协作中,多个人操作了同一个文件时,可以实现自动合并(模块化,组件化)、标记冲突,拥有强大的分支管理系统。 阅读全文…
2017-07-10JavaScriptJavaScript 的继承方式及优缺点前言JavaScript 原本不是纯粹的 OOP 语言,因为在 ES5 规范中没有类的概念,在 ES6 中才正式加入了 class 的编程方式,在 ES6 之前,也都是使用面向对象的编程方式,当然是 JavaScript 独有的面向对象编程,而且这种编程方式是建立在 JavaScript 独特的原型链的基础之上的,我们本篇就将对原型链以及面向对象编程最常用到的继承进行刨析。 阅读全文…