
有意思的命名
如果有一个布尔变量,来控制某个按钮的显示隐藏,就有两种命名方法: show = 布尔值 hide = 布尔值 当使用 show 变量时,好像,代码的逻辑更像是在问 “是否要显示按钮?” 如果答案是肯定的(true),就显示按钮;如果是否定的(false),就隐藏按钮。这种逻辑符合人们日常对于 “展示” 事物的思考方式。 ...

命题逻辑真值表
这篇文章先给出离散数学中命题逻辑真值表,介绍了合取、析取、否定、蕴含、等价运算规则及结果,后分别以具体生活实例对每种运算进行详细说明,并特别指出蕴含运算中逻辑关系与因果关系的区别

js 是如何存储数字的
为什么要写这篇博客 最近在和同事午饭的时候聊到这个问题。想到了刚接触编程时粗略了解过,但是又没办法讲清楚,所以决定利用这篇博客复习一下。也希望给相关的二进制存储的疑问画上一个句号。 ...

浏览器事件循环
为什么要总结这个问题 这几天和我的同事聊到这个问题,他提出了一些深入的问题,想了想,我也有相同的疑问。真是验证了那句话,了解的越多就发现自己了解的越少!so 被迫研究了下这个问题总结起来。便于以后查看和补充。 ...

从 OSI 七层模型到 TCP
为什么要写这篇博客 一个是感觉自己的计算机网络基础薄弱,关于七层模型和 tcp、udp 看过几次了,都不够透彻,知其然不知其所以然。再一个,最近和同事有聊到这个事,感觉自己也说不明白,又意识到很重要,所以决定整理一下,自己感觉自己会了和可以给别人讲明白这个事儿,区别还是很大的啊。就参考资料和自己理解记录一下。 ...

记发布订阅和观察者模式
发布订阅模式 简单来说,需要三个角色 发布者 事件队列 订阅者 发布者 -> 事件队列 <=> 订阅者 一次完整流程 订阅者向事件队列订阅事件E 发布者向事件队列发布事件E 事件队列通知事件E的所有订阅者,订阅者接收 class Event { constructor() { // 事件队列 this.listeners = {}; } // 订阅方法 on(eventType, listener) { if (!this.listeners[eventType]) { this.listeners[eventType] = []; } this.listeners[eventType].push(listener); } // 发布方法 emit(eventType, data) { const callbacks = this.listeners[eventType]; if (callbacks) { callbacks.forEach((c) => { c(data); }); } } } const event = new Event(); event.on("open", (data) => { console.log(data); }); event.emit("open", { open: true }); 观察者模式 需要两个角色 ...

旅行者1号
旅行者计划 30 多年前,美国发起了一项太空计划:旅行者计划。目的是为了探测木星和土星,其中包含旅行者1号和旅行者2号,在 1977 年,美国向太空发射了这两颗探测器。 ...

手写代码面试题合集
持续更新,为了高效率访问,也算自己复习!!把遇到的手写题,抽空都撸了一遍。满满干货,不墨迹,直接上代码。总结道这篇博客里,下次面试前快速过一遍,临阵磨刀~ ...

真睡后收入-以太坊挖矿小记
因论坛帖子对以太坊挖矿产生兴趣,以自身配置为例,介绍了选择矿池、获取地址、使用 PhoenixMiner 和 lolMiner 两款软件开始挖矿的详细步骤,分析收益成本,讲解算力相关知识并附上主流显卡算力表

前端面试题总结
HTML 和 CSS BFC 全称「块格式化上下文」(Block Formatting Context), 是一块独立的 css 作用域,外部如何变化都影响不到他。 ...