My Blog

「黎明到来之前都是黑暗的」

What is a Promise ?

What is the concept of promise and how to use promise ?

引言 什么是「Promise」? 对于后面入门的同学来说,能回答的应该就是「异步」、「回调」等相关了,当然这也与我们的学习路程有关。有的同学是本专业,但是涉及不深,也不知道。有的同学是一般培训机构的,了解完「html」和框架,就开始写业务。有的同学是自学的,阅读层次没有达到那么深。 回归正传,「Promise」意为承诺,那到底如何去理解呢? Promise 在谈论到「Promise」的时...

Proxy 与 DefineProperty 的区别是什么?

如何从语义层或者操作层里理解 Proxy 与 DefineProperty

一个是 vue3 的响应式原理,一个是 vue2 的,那两者的实质性区别到底是什么?我们分别来分析一下各自的特点。 Proxy 它在 MDN 上的解读是这样的: The Proxy object enables you to create a proxy for another object,which can intercept and redefine fundamental...

高阶函数(HOF)

What are higher-order functions and how to use them

引言 函数就是自变量与因变量之间的映射关系,在编程里,函数增强代码的可维护性、可读性,进行逻辑抽象和解耦等,其作用不可谓不大。那「高阶函数」又是什么,维基百科是这么介绍的,核心就两点: takes one or more functions as arguments. returns a function or value as its result. 「只要满足了其中一点...

闭包与内存泄漏的纠葛

闭包与内存泄漏有什么关系,如何理解垃圾回收

经常会被问到什么是闭包,说说你对闭包的理解,闭包会引起内存泄漏吗等等问题。要清楚闭包与内存泄漏的关系,则得先了解什么是「垃圾回收」。 那什么是「垃圾」呢?一直以来也没有明确的定义,但都形成了一个共识,那就是「不再需要的内存」,这些内存里的数据就是「垃圾」。那什么又是「不再需要」呢?这个是由开发者决定的,需不需要取决于你。 比如说: 1 2 3 4 5 6 7 8 9 10 11 12 1...

Vue Slot

如何重新解读 vue slot?

官网文档,对插槽做出相关的定义,例如 「默认插槽」、「具名插槽」和「作用域插槽」 。那现在我们用另一种方式来解析 插槽(slot) 的本质。 我们姑且将定义声明插槽的组件叫做 「子组件(comp)」。 现在子组件有这样的格式: 1 2 3 4 5 6 7 8 9 //comp.vue <template> <div> <slot><...

位运算的强大

位运算到底怎么实现它的价值

位运算,默默无闻而不被人关注,但却在 js 开发中发挥着举足轻重的作用。 什么是位运算 位运算(Bitwise Operations)的执行效率是非常快的,能给我们的开发带来很多方便。 位运算:「指的是将一个整数的二进制格式进行运算」。JS 中,如果对一个数据进行位运算,它首先会将其转换为一个整数(抹掉小数), 并且按照 32 位的整数二进制进行排列。 1 2 3 4 2.3 ->...

中文输入法导致的高频问题

High-frequency problems caused by Chinese input methods

我们经常会给 input 绑定事件监听内容的变化,然后做出一些处理。但是如果你注意,你就会发现在中文下,你还没有确定内容(比如 enter),但是绑定的方法已经触发了。 你的绑定是这样的, 1 <input type="text" @input="onSearch" v-model="msg"> 结果就是在中文输入法下,你还没选择文字,onSearch就触发了。 ...

网页复制

解决网页文字复制不了的问题

我们在阅读一些文档的时候,需要对某些文字进行 「复制」,但是当我们复制时,有时就会出现弹窗,让你登录或者开 vip。又或者你自以为成功复制,可是你粘贴的时候才发现根本没复制成功。 既然这么搞,那我们就来分析分析,看这个技术是怎么实现的。 我们页面上有一段文字。 「噫(y)吁(xū)嚱(x),危乎高哉!蜀道之难难于上青天。蚕丛及鱼凫,开国何茫然。尔来四万八千岁,不与秦塞通人烟。西当太白有...

老生常谈的代码回滚

如果有效的回滚代码

并不适合阅读的个人文档。 git revert 和 git reset 的区别 先看图: sourceTree 中 revert 译为提交回滚,作用为忽略你指定的版本,然后提交一个新的版本。新的版本中已近删除了你所指定的版本。 reset 为 重置到这次提交,将内容重置到指定的版本。git reset 命令后面是需要加2种参数的:–-hard 和 –-soft。这条命令默认...

常使用的 Git 命令

不适合阅读的整理的一些个人常用的 Git 指令

随便整理的一些自用的Git指令 GitHub创建仓库提示代码 1 2 3 4 5 6 echo "# 项目名" >> README.md git init git add README.md git commit -m "first commit" git remote add origin git@github.com:qiubaiying/项目名.git git ...