漫说前端 [ The road to be a better programmer. ]

[技术周刊 v5] 如何在JavaScript中调试代码

什么是ARTS打卡?

Algorithm 算法

  • 70. 爬楼梯

    思路1:通过递归计算,但当数值大时重复计算过多容易超时;

    function climbStairs(n: number): number {
      if (n <= 2) return n;
      return climbStairs(n - 1) + climbStairs(n - 2);
    };

    思路2:爬到第n层楼梯,可以从第n-1层爬一阶楼梯或者从第n-2层爬两阶楼梯,即f(n) = f(n-1) + f(n-2),也就是斐波那契数列

    function climbStairs(n: number): number {
      if (n <= 2) return n;
      const temp: number[] = [1, 2];
      for (let i = 2; i < n; i++) {
          temp[i] = temp[i - 1] + temp[i - 2];
      }
      return temp[n - 1];
    };
  • 83. 删除排序链表中的重复元素

    循环判断当前值与下一项的值,判断是否跳过

    function deleteDuplicates(head: ListNode | null): ListNode | null {
      let cur = head
      while(cur && cur.next !== null) {
          if(cur.val === cur.next.val) {
              cur.next = cur.next.next;
          } else {
              cur = cur.next;
          }
      }
      return head;
    };

Review 英文阅读

Article:

Debugging in JavaScript - GeeksforGeeks

Review:

编写代码时出现错误是很常见的,错误可能由语法或者逻辑造成。如何识别错误、找到解决方案是开发中必要的能力,通过这篇文章可以学习到如何通过浏览器调试工具,来定位问题并修复它们。 文章提到了两种调试方式:debuggerconsole.log(); 相较于console.log,断点debugger更方便我们在代码执行流程中查看上下文、执行值检查等操作。

Tip 技术技巧

使用待办清单,从容处理工作

我们的大脑结果更像是单核单线程处理器,一次只能处理一个任务,当遇到多任务处理时,给自己列一份清单,按照优先级调整执行顺序。同时配合番茄时钟,将复杂任务拆解为25分钟的一个的番茄钟,搭配休息时间,保障高效执行。

同时在清单列表上可以记录每日沟通、会议等其他事务,帮助自己合理分配时间。

对清单完成内容进行勾选,方便日报周报输出,减少工作压力。

alt todoList

Share 分享

学习英语时,需要阅读来提升,太长文章读不下去,这里都是100字左右的英语短文,简短有趣,可以作为每日的英语学习素材。

可以配合 AI 对话工具,或者沉浸式翻译进行学习:)

alt 100words

作者:Deguang
创建时间:2023-08-27
修改时间:2023-08-27