github资源整理

150 阅读8分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第7天,点击查看活动详情 >>

github 优质资源

github 前端技术清单,请查收

CS-Notes

📚 Tech Interview Guide 技术面试必备基础知识、Leetcode 题解、Java、C++、Python、后端面试、操作系统、计算机网络、系统设计

 算法 操作系统 网络 面向对象  数据库     Java   系统设计   工具   编码实践   后记   
✏️💻☁️🎨💾☕️️💡🔧🍉📝

✏️ 算法

☁️ 网络

javascript-algorithms

JavaScript 算法与数据结构。本仓库包含了多种基于 JavaScript 的算法与数据结构。每种算法和数据结构都有自己的 README,包含相关说明和链接,以便进一步阅读 (还有 YouTube 视频) 。

算法是如何解决一类问题的明确规范。算法是一组精确定义操作序列的规则。B - 初学者, A - 进阶

30-seconds-of-code

精选 JavaScript 代码段集合,您可以在30秒或更短的时间内理解这些代码段

javascript-questions

JavaScript 进阶问题列表,从基础到进阶,测试你有多了解 JavaScript,刷新你的知识,或者帮助你的 coding 面试! 💪 🚀 我每周都会在这个仓库下更新新的问题。

  • github

  • 摘要

      1. 输出是什么?
    function sayHi() {
    console.log(name)
    console.log(age)
    var name = 'Lydia'
    let age = 21
    }
    
    sayHi()
    复制代码
    
    • A: Lydiaundefined
    • B: LydiaReferenceError
    • C: ReferenceError21
    • D: undefinedReferenceError

    答案

    答案: D

    在函数内部,我们首先通过 var 关键字声明了 name 变量。这意味着变量被提升了(内存空间在创建阶段就被设置好了),直到程序运行到定义变量位置之前默认值都是 undefined。因为当我们打印 name 变量时还没有执行到定义变量的位置,因此变量的值保持为 undefined

    通过 letconst 关键字声明的变量也会提升,但是和 var 不同,它们不会被初始化。在我们声明(初始化)之前是不能访问它们的。这个行为被称之为暂时性死区。当我们试图在声明之前访问它们时,JavaScript 将会抛出一个 ReferenceError 错误。


      1. 输出是什么?
    for (var i = 0; i < 3; i++) {
    setTimeout(() => console.log(i), 1)
    }
    
    for (let i = 0; i < 3; i++) {
    setTimeout(() => console.log(i), 1)
    }
    复制代码
    
    • A: 0 1 20 1 2
    • B: 0 1 23 3 3
    • C: 3 3 30 1 2

    答案

    答案: C

    由于 JavaScript 的事件循环,setTimeout 回调会在遍历结束后才执行。因为在第一个遍历中遍历 i 是通过 var 关键字声明的,所以这个值是全局作用域下的。在遍历过程中,我们通过一元操作符 ++ 来每次递增 i 的值。当 setTimeout 回调执行的时候,i 的值等于 3。

    在第二个遍历中,遍历 i 是通过 let 关键字声明的:通过 letconst 关键字声明的变量是拥有块级作用域(指的是任何在 {} 中的内容)。在每次的遍历过程中,i 都有一个新值,并且每个值都在循环内的作用域中。