html5 storage api localStorage 和 sessionStorage 是 html5 新增的用来存储数据的对象,他们让我们可以以键值对的形式存储信息. 为什么要有 storage ? 我们已经有了 session 可以帮助我们存储信息,为何还需要 storage 呢? 各个浏览器的 cookie 长度大概只能在 4kb 左右,而 storage 大概能达到 5M,这意味着可以存储更多的信息 cookie 可以被后端更改,在每次进行网络请求的时候都会被发送给服务器,而 s…
HTML5 history api 前言 由于笔者在网络上没有找到比较好的关于 history api 的实践案例,有的案例过于杂乱,没有重点,有些案例只是告诉读者 api 是什么,却没告诉怎么用,本文章从零开始带读者实践 history api ,建议和笔者一起写一遍. 效果 注意 url 变化,另外用到了 虎裤里老师 和 狼大老师 的图,侵权马上删. 流程 html 部分 需要引入 jquery <!DOCTYPE html> <html lang="en">…
JavaScript 设计模式(一) 本文需要读者至少拥有基础的 ES6 知识,包括 Proxy, Reflect 以及 Generator 函数等. 至于这次为什么分了两篇文章,有损传统以及标题的正确性,是这样的. 其实放在一篇文章里也可以,但是希望读者能够更加轻松点,文章太长也会导致陷入阅读疲倦中. 因此希望读者理解. 1. 工厂模式 JavaScript 寄生模式就是一种 工厂模式,具体可以参考我的关于 JavaScript 继承这篇文章,这里不再细谈寄生模式. 工厂模式是用工厂方法代替…
JavaScript 设计模式(二) 本篇文章是 JavaScript 设计模式的第二篇文章,如果没有看过我上篇文章的读者,可以先看完 上篇文章 后再看这篇文章,当然两篇文章并没有过多的依赖性. 5. 代理模式 代理模式提供了对目标对象的另一种访问机制. 在 vue3 还没出来之前,我猜过可能会使用 proxy 取代 defineProperty ,结果也被验证了,毕竟 proxy 比 defineProperty 支持更多的拦截机制,可以对数组的方法进行拦截. const obj = {};…
JavaScript 事件循环机制 (event loop) 本篇文章已经默认你有了基础的 ES6 和 javascript语法 知识. 本篇文章比较细致,如果已经对同步异步,单线程等概念比较熟悉的读者可以直接阅读执行栈后面的内容了解 event loop 原理 在了解 JavaScript 事件循环机制之前,得先了解同步与异步的概念 同步与异步 同步(Sync const cal = () => { for (let i = 0; i < 1e8; i++) { // 做一些运算 } } c…
JavaScript 继承 在阅读本文章之前,已经默认你了解了基础的 JavaScript 语法知识,基础的 ES6 语法知识 . 继承种类 简单的继承种类可以分为 构造函数继承 原型链继承 class继承 寄生继承 其中 class 继承是 ES6 后提供的一种语法糖,方便其他面向对象语言的程序员更好的接受 JavaScript 中的继承,本质上还是原型链继承. 1. 构造函数继承 function Person() { this.name = "name"; this.eat =…
JavaScript 原型和原型链 在阅读本文章之前,已经默认你了解了基础的 JavaScript 语法知识,基础的 ES6 语法知识 . 本篇文章旨在为 JavaScript继承 打下基础 原型 在 JavaScript 里任何一个函数都有一个 prototype 属性,这个属性称之为原型 function Person() { this.name = "name"; } console.log(Person.prototype) 而 Person.prototype 实际上是一个包…
JavaScript 闭包 为了更好地理解 JavaScript 闭包,笔者将先从 JavaScript 执行上下文以及 JavaScript 作用域开始写起,如果读者对这方面已经了解了,可以直接跳过. 1. 执行上下文 简单来说,JavaScript 有三种代码运行环境,分别是: Global Code 是 JavaScript 代码开始运行的默认环境 Function Code 是 JavaScript 函数运行的环境 Eval Code 是 利用 eval 函数执行的代码环境 执行上下文可…
一篇文章让Oracle DB学会MySql[未完待续] 随笔前言: 本篇文章是针对已经能够熟练使用Oracle数据库的DB所写的快速学会MySql,为什么敢这么说,是因为本人认为Oracle在功能性方面和难度方面都比MySql要高一些,所以精通Oracle的DB在学习MySql的时候,没有必要从头到尾再去搞一遍,只需要掌握两者的用法区别即可.故本篇文章就针对Oracle和MySql的区别来把MySql的知识掌握住,在文章中,实例都是MySql环境下的实例,而Oracle可能知识一句话来概括,所以…
一篇文章教你学会ASP.Net Core LINQ基本操作 为什么要使用LINQ LINQ中提供了很多集合的扩展方法,配合lambda能简化数据处理. 例如我们想要找出一个IEnumerable<int>中所有大于10的元素,使用LINQ则可以这样写 static void Main(string[] args) { int[] nums = new int[] { 3, 5, 6, 5, 10, 12, 14, 7 }; IEnumerable<int> res = nums.W…