Lodash 源码解析 —— Slice

lodash slice 函数学习

阅读全文

实现数组拍平

有一个深层嵌套的数组,需要输出拍平后的新数组

const input = [1, [2, [3, 4], [5], [6]]];
const output = [1, 2, 3, 4, 5, 6];

阅读全文

HTTP 笔记

一、HTTP 1.0

  1. 每请求一个资源都要新建一个TCP连接,而且是串行请求,性能比较差

阅读全文

我所不知道的 Vue 细节

用 Vue 已经有几年了,使用上大概是人们口中所说的老司机了吧,熟知 Vue 生态,用来开发了十来个项目,也可谓是驾轻熟路了吧。遇到问题也会通过 debug 找到问题出处,不明白的回去翻翻源码相应的位置。不过还是有很多地方是我不知道的,更确切的说是自己只是把他当做工具,能用就行,从来没有想过这个工具为什么这么设计,对于开发有什么借鉴意义,我想这也是大部分人的做法吧。

阅读全文

记突发事件导致的服务降级

昨天早上我整理好手头的 task,刚安排好当天要做的事情,做了一点点,就听到办公室有人在说正式版服务挂了,用七牛 CDN 的所有项目都打不开,因为七牛 CDN 挂了,我想到我们还有 pc 端,静态资源不走 CDN,就跟同事说让外面用着 PC 版先,功能都一样的,同事说视频,文档这些动态调用的静态资源都放在七牛,上传图片的路径也是七牛,还是会有部分功能用不了,不过我想我们也没办法,感觉这是服务端的事情,我这边应该也不用做什么措施,继续淡定的敲我的代码。

阅读全文

关于做技术这件事

想做技术的契机来源于大学计算机老师的影响,大一教 c 语言的老师让我知道了编程竟然这么有趣,可以做这么多好玩的东西。大二时听到老师很有兴致的讲到他大学的时候通过局域网去恶作剧,觉得懂技术竟然可以这么好玩,真有意思。后来的数据库课程的老师布置的期末大作业,开发一个动态网站,我第一次知道了了网站开发竟然这么简单,几行代码就可以出来一个让全世界人们都能看到的页面。就是这么一个个老师的影响,我有了编程这个爱好,也坚持这个爱好并找到了相关工作。

阅读全文

Vue 数据驱动视图更新实现

写了几年的 Vue 了,对其中的内部实现还是一知半解,日常开发中,基本问题 debug + 官方文档基本可以解决了,很少有触及源码的需求。最近发现看看源码也有好处,用的时候可能会多了一些自己的理解,知道了为什么,使用起来也更加得心应手。下面来讲讲 Vue 数据驱动视图是怎么做到的。

在讲 Vue 如何做到数据驱动视图之前,我们先来看看用纯 js 我们是如何改变页面数据的

阅读全文

JavaScript New 关键字的实现原理

在实例化一个构造函数的时候,我们通常会用 new 关键字,这个 new 关键字是如何做到让实例可以调用到构造函数上的方法和属性的呢?

我们先来看看实例有啥特性,首先每个实例上都有一个 __proto__ 属性指向实例原型,也就是构造函数的原型,实例可以调用到构造函数上的方法和属性,然后实例可以向构造函数传参。乍一看这不就是在变相的问如何实现继承吗?接下来,我们写个 demo 看看怎么实现上述表述的内容

阅读全文

Js 字符串转 Base64

最近想把字符串转换成 base64,不想用库,搜了下浏览器环境下 js 原生就支持字符串跟 base64 的相互转换,看看 demo:

// 加密
var a = btoa('canace22@qq.com')
// 解密
var b = atob(a)
console.log(a) // Y2FuYWNlMjJAcXEuY29t
console.log(b) // canace22@qq.com

阅读全文

Web 安全——CSRF

CSRF 攻击是比较常见的 web 攻击形式之一,本篇文章主要介绍产生 CSRF 攻击的原因,场景以及防范 CSRF 攻击的方法等内容

阅读全文