字节跳动CodeTop(三)
83. 删除排序链表中的重复元素 543. 二叉树的直径 子问题:比较左右子树最大深度 + 1 225. 用队列实现栈 572. 另一棵树的子树 剑指 Offer 61. 扑克牌中的顺子 83. 删除排序链表中的重复元素 剑指 Offer 29. 顺时针打印矩阵 模拟,并记录已经被访问的位置 剑指 Offer 1…
Read articleThe archive
Notes on frontend development, engineering, and everyday ideas. Find a subject and start reading.
83. 删除排序链表中的重复元素 543. 二叉树的直径 子问题:比较左右子树最大深度 + 1 225. 用队列实现栈 572. 另一棵树的子树 剑指 Offer 61. 扑克牌中的顺子 83. 删除排序链表中的重复元素 剑指 Offer 29. 顺时针打印矩阵 模拟,并记录已经被访问的位置 剑指 Offer 1…
Read article由面试题引出的 黄金时代:事件驱动 为了解决高并发问题,基于事件驱动的服务模型出现了,像Node与Nginx均是基于事件驱动 的方式实现的,采用单线程避免了不必要的内存开销和上下文切换开销。 多进程架构 面对单进程单线程对多核使用不足的问题,前人的经验是启动多进程即可。理想状态下每个 进程各自利用一个CPU,以此…
Read article前面我们讲到了每个渲染进程都有一个主线程,并且主线程非常繁忙,既要处理 DOM,又要计算样式,还要处理布局,同时还需要处理 JavaScript 任务以及各种输入事件。要让这么多不同类型的任务在主线程中有条不紊地执行,这就需要一个系统来统筹调度这些任务,这个统筹调度系统就是我们今天要讲的消息队列和事件循环系统。 …
Read article理解作用域链是理解闭包的基础,而闭包在 JavaScript 中几乎无处不在,同时作用域和作用域链还是所有编程语言的基础。所以,如果你想学透一门语言,作用域和作用域链一定是绕不开的 那今天我们就来聊聊什么是作用域链,并通过作用域链再来讲讲什么是闭包。 首先我们来看下面这段代码: 你觉得这段代码中的 bar 函数和…
Read article在上篇文章中,我们讲了词法作用域、作用域链以及闭包,并在最后思考题中留了下面这样一段代码 相信你已经知道了,在 printName 函数里面使用的变量 myName 是属于全局作用域下面的,所以最终打印出来的值都是“极客邦”。这是因为 JavaScript 语言的作用域链是由词法作用域决定的,而词法作用域是由代码…
Read article对于前端开发者来说,JavaScript 的内存机制是一个不被经常提及的概念 ,因此很容易被忽视。特别是一些非计算机专业的同学,对内存机制可能没有非常清晰的认识,甚至有些同学根本就不知道 JavaScript 的内存机制是什么 但是如果你想成为行业专家,并打造高性能前端应用,那么你就必须要搞清楚JavaScrip…
Read article有些数据被使用之后,可能就不再需要了,我们把这种数据称为垃圾数据。如果这些垃圾数据一直保存在内存中,那么内存会越用越多,所以我们需要对这些垃圾数据进行回收,以释放有限的内存空间 不同语言的垃圾回收策略 通常情况下,垃圾数据回收分为手动回收和自动回收两种策略。 如 C/C++ 就是使用手动回收策略,何时分配内存、何…
Read article在上篇文章中,我们讲到了,当一段代码被执行时,JavaScript引擎先会对其进行编译,并创建执行上下文。但是并没有明确说明到底什么样的代码才算符合规范 那么接下来我们就来明确下,哪些情况下代码才算是“一段”代码,才会在执行之前就进行编译并创建执行上下文。一般说来,有这么三种情况 当JavaScript执行全局代…
Read article在前面《07 变量提升:JavaScript代码是按顺序执行的吗?》这篇文章中,我们已经讲解了JavaScript中变量提升的相关内容,正是由于JavaScript存在变量提升这种特性,从而导致了很多与直觉不符的代码,这也是JavaScript的一个重要设计缺陷 虽然ECMAScript6(以下简称ES6)已经通…
Read article700. 二叉搜索树中的搜索 递归 迭代 剑指 Offer 54. 二叉搜索树的第k大节点 二叉搜索树的 中序遍历倒序 为 递减序列 。 因此,求 “二叉搜索树第 kk 大的节点” 可转化为求 “此树的中序遍历倒序的第 k 个节点”。or 正序倒数第三个。 342. 4的幂 循环 转换为2的幂 507. 完美数 …
Read article1、 判断为空 2、多条件判断 if-else 改善 感觉对象更好一些 生成随机ID 每秒更新当前时间 生成随机 16 进制 颜色 码 如 # ffffff 优雅的取整 优雅的金钱格式化 五种方法实现值交换 实现深拷贝 递归求阶乘 对象访问
Read article逻辑赋值操作符 逻辑赋值操作符将逻辑操作(&&、或??)与赋值表达式组合在一起。 带有&&的逻辑赋值操作符 x &&= y 等价于 x && (x = y)。 或者等价于 因为x是一个真值,所以它被赋值为y,即2。 带有的逻辑赋值操作符 x = y 等价于 x (x = y)。 这意味着赋值操作只在x为虚值时才会…
Read articleTry another keyword or reset your filters.