一些前端大牛都在学习的github库
Posted 孙叫兽
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一些前端大牛都在学习的github库相关的知识,希望对你有一定的参考价值。
前端知识比较杂,长时间的工作容易沉浸在业务当中,技术提升有限,这里发现了前端的新大陆,可以帮助小伙伴们巩固基础知识,完善自己的知识体系,欢迎点赞收藏,兄弟们,赶紧干起来吧!
1.javascript 算法和数据结构https://github.com/trekhleb/javascript-algorithms
数据结构
数据结构是一种在计算机中组织和存储数据的特殊方式,以便可以有效地访问和修改数据。更准确地说,数据结构是数据值、它们之间的关系以及可应用于数据的功能或操作的集合。
B
- 初学者,A
- 高级
B
链表B
双向链表B
队列B
堆B
哈希表B
堆- 最大和最小堆版本B
优先队列A
特里A
树A
二叉搜索树A
AVL 树A
红黑树A
段树- 带有最小/最大/总和范围查询示例A
Fenwick 树(二叉索引树)
A
图(有向和无向)A
不相交集A
布隆过滤器
算法
算法是如何解决一类问题的明确规范。它是一组精确定义操作序列的规则。
B
- 初学者,A
- 高级
主题算法
数学
B
位操作- 设置/获取/更新/清除位,乘法/除以二,负数等。B
Binary Floating Point - 浮点数的二进制表示。B
阶乘B
斐波那契数- 经典和封闭形式的版本B
Prime Factors - 使用 Hardy-Ramanujan 定理找到主要因素并计算它们B
素性检验(试除法)B
欧几里得算法- 计算最大公约数 (GCD)B
最小公倍数(LCM)B
埃拉托色尼筛法- 找出任何给定限制的所有素数B
是二的幂- 检查数字是否是二的幂(朴素和按位算法)B
帕斯卡三角B
复数- 复数及其基本运算B
弧度和度数 - 弧度到度数和反向转换B
快速供电B
霍纳方法- 多项式评估B
矩阵- 矩阵和基本矩阵运算(乘法、转置等)B
欧几里得距离- 两点/向量/矩阵之间的距离A
整数分区A
平方根- 牛顿法A
Liu Hui π Algorithm - 基于N-gons的近似π计算A
离散傅里叶变换- 将时间函数(信号)分解为构成它的频率
套
B
笛卡尔积- 多组积B
Fisher-Yates Shuffle - 有限序列的随机排列A
幂集- 集合的所有子集(按位和回溯解决方案)A
排列(有和没有重复)A
组合(有和没有重复)A
最长公共子序列 (LCS)A
最长递增子序列A
最短公共超序列(SCS)A
背包问题- “0/1”和“未绑定”问题A
最大子阵列- “蛮力”和“动态编程”(Kadane 的)版本A
组合总和- 查找形成特定总和的所有组合
字符串
B
汉明距离- 符号不同的位置数B
Palindrome - 检查字符串是否反向相同A
Levenshtein Distance - 两个序列之间的最小编辑距离A
Knuth–Morris–Pratt Algorithm (KMP Algorithm) - 子串搜索(模式匹配)A
Z 算法- 子串搜索(模式匹配)A
Rabin Karp 算法- 子串搜索A
最长公共子串A
正则表达式匹配
搜索
B
线性搜索B
跳转搜索(或块搜索) - 在排序数组中搜索B
二进制搜索- 在排序数组中搜索B
插值搜索- 在均匀分布的排序数组中搜索
排序
B
冒泡排序B
选择排序B
插入排序B
堆排序B
合并排序B
快速排序- 就地和非就地实现B
贝壳排序B
计数排序B
基数排序
链表
B
直线遍历B
反向遍历
树木
B
深度优先搜索(DFS)B
广度优先搜索(BFS)
图表
B
深度优先搜索(DFS)B
广度优先搜索(BFS)B
Kruskal 算法- 找到加权无向图的最小生成树 (MST)A
Dijkstra 算法- 从单个顶点找到到所有图顶点的最短路径A
Bellman-Ford 算法- 从单个顶点找到到所有图顶点的最短路径A
Floyd-Warshall 算法- 找到所有顶点对之间的最短路径A
Detect Cycle - 适用于有向图和无向图(基于 DFS 和不相交集的版本)A
Prim 算法- 找到加权无向图的最小生成树 (MST)A
拓扑排序- DFS 方法A
关节点- Tarjan 算法(基于 DFS)A
Bridges - 基于 DFS 的算法A
欧拉路径和欧拉回路- Fleury 算法 - 只访问每条边一次A
哈密顿循环- 只访问每个顶点一次A
强连通分量- Kosaraju 算法A
旅行商问题- 访问每个城市并返回起点城市的最短路径
密码学
B
Polynomial Hash - 基于多项式的滚动哈希函数B
Rail Fence Cipher - 一种用于编码消息的转置密码算法B
凯撒密码- 简单替换密码B
Hill Cipher - 基于线性代数的替换密码
机器学习
B
NanoNeuron - 7 个简单的 JS 函数,说明机器如何实际学习(前向/后向传播)B
k-NN - k-最近邻分类算法B
k-Means - k-Means 聚类算法
图像处理
B
Seam Carving - 内容感知图像大小调整算法
统计数据
B
加权随机- 根据项目的权重从列表中选择随机项目
进化算法
A
遗传算法- 遗传算法如何应用于训练自动泊车的示例
未分类
B
河内塔B
方阵旋转- 就地算法B
Jump Game - 回溯、动态规划(自上而下 + 自下而上)和贪心示例B
唯一路径- 回溯、动态规划和基于帕斯卡三角形的示例B
Rain Terraces - 捕获雨水问题(动态编程和蛮力版本)B
递归楼梯- 计算到达顶部的方式数量(4 个解决方案)B
买入卖出股票的最佳时机- 分而治之和一次性示例A
N皇后问题A
骑士之旅
Paradigm 算法
算法范式是一种通用方法或方法,它是一类算法设计的基础。它是一种高于算法概念的抽象,就像算法是一种高于计算机程序的抽象一样。
蛮力- 查看所有可能性并选择最佳解决方案
B
线性搜索B
雨水梯田- 捕获雨水问题B
递归楼梯- 计算到达顶部的方式数量A
最大子数组A
旅行商问题- 访问每个城市并返回起点城市的最短路径A
离散傅里叶变换- 将时间函数(信号)分解为构成它的频率
贪心——选择当前时间最好的选项,不考虑未来
B
跳跃游戏A
未绑定背包问题A
Dijkstra 算法- 找到所有图顶点的最短路径A
Prim 算法- 找到加权无向图的最小生成树 (MST)A
Kruskal 算法- 找到加权无向图的最小生成树 (MST)
分而治之 - 将问题分成更小的部分,然后解决这些部分
B
二进制搜索B
河内塔B
帕斯卡三角B
欧几里得算法- 计算最大公约数 (GCD)B
合并排序B
快速排序B
树深度优先搜索(DFS)B
图深度优先搜索(DFS)B
矩阵——生成和遍历不同形状的矩阵B
跳跃游戏B
快速供电B
买入卖出股票的最佳时机- 分而治之和一次性示例A
排列(有和没有重复)A
组合(有和没有重复)A
最大子数组
动态规划- 使用先前找到的子解决方案构建解决方案
B
斐波那契数B
跳跃游戏B
独特的路径B
雨水梯田- 捕获雨水问题B
递归楼梯- 计算到达顶部的方式数量B
Seam Carving - 内容感知图像大小调整算法A
Levenshtein Distance - 两个序列之间的最小编辑距离A
最长公共子序列 (LCS)A
最长公共子串A
最长递增子序列A
最短公共超序列A
0/1 背包问题A
整数分区A
最大子数组A
Bellman-Ford 算法- 找到所有图顶点的最短路径A
Floyd-Warshall 算法- 找到所有顶点对之间的最短路径A
正则表达式匹配
回溯- 类似于蛮力,尝试生成所有可能的解决方案,但每次生成下一个解决方案时,您都会测试它是否满足所有条件,然后才继续生成后续解决方案。否则,回溯,并继续寻找解决方案的不同路径。通常使用状态空间的 DFS 遍历。
B
跳跃游戏B
独特的路径B
幂集- 集合的所有子集A
哈密顿循环- 只访问每个顶点一次A
N皇后问题A
骑士之旅A
组合总和- 查找形成特定总和的所有组合
Branch & Bound - 记住在回溯搜索的每个阶段找到的最低成本解决方案,并使用迄今为止找到的最低成本解决方案的成本作为问题的最低成本解决方案成本的下限,在为了丢弃成本大于迄今为止找到的最低成本解决方案的部分解决方案。通常 BFS 遍历与状态空间树的 DFS 遍历结合使用。
2.30秒的代码
https://github.com/30-seconds/30-seconds-of-code
这个需要在官网测试代码片段:https://www.30secondsofcode.org/
3.Airbnb JavaScript 风格指南
https://github.com/airbnb/javascript
类型
参考
对象
数组
解构
字符串
职能
箭头函数
类和构造函数
模块
迭代器和生成器
特性
变量
吊装
比较运算符和等式
块
控制语句
注释
空白
逗号
分号
类型转换和强制
命名约定
访问器
活动
jQuery
ECMAScript 5 兼容性
ECMAScript 6+ (ES 2015+) 样式
标准库
测试
表现
资源
在野外
翻译
JavaScript 样式指南指南
与我们讨论 JavaScript
贡献者
执照
修正
这个主要讲的就是代码风格,规范。
4.You Don't Know JS Yet (book series) - 第 2 版】
https://github.com/getify/You-Dont-Know-JS
这是一系列深入探讨 JavaScript 语言核心机制的书籍。
第一版:https://github.com/getify/You-Dont-Know-JS/blob/1st-ed/README.md
这个比较锻炼自己的js核心能力。
5.什么他妈的JavaScript?
https://github.com/denysdovhan/wtfjs
💪🏻动机
✍🏻 符号
👀例子
[]
是平等的![]
true
不相等![]
,但也不[]
相等真就是假
香蕉
NaN
不是一个NaN
Object.is()
和===
奇怪的案例这是一个失败
[]
是真实的,但不是true
null
是假的,但不是false
document.all
是一个对象,但它是未定义的最小值大于零
函数不是函数
添加数组
数组中的尾随逗号
数组相等是个怪物
undefined
和Number
parseInt
是个坏人数学
true
和false
html 注释在 JavaScript 中有效
NaN
是不是一个号码[]
并且null
是对象神奇地增加数字
精度
0.1 + 0.2
修补号码
三个数字的比较
有趣的数学
添加正则表达式
字符串不是
String
使用反引号调用函数
呼叫呼叫呼叫
一个
constructor
属性对象作为对象属性的键
访问原型
__proto__
`$Object`
使用默认值解构
点和传播
标签
嵌套标签
阴险
try..catch
这是多重继承吗?
产生自身的生成器
一类类
不可强制对象
棘手的箭头函数
箭头函数不能是构造函数
arguments
和箭头函数棘手的回报
在对象上链接分配
使用数组访问对象属性
空和关系运算符
Number.toFixed()
显示不同的数字Math.max()
少于Math.min()
比较
null
_0
相同的变量重新声明
默认行为 Array.prototype.sort()
resolve() 不会返回 Promise 实例
未定义
min
大于max
arguments
捆绑alert
来自地狱无限超时
一个
setTimeout
对象双点
额外的新鲜感
为什么你应该使用分号
用空格分割字符串
字符串化的字符串
数字的非严格比较
true
这个列表的主要目标是收集一些疯狂的例子,并在可能的情况下解释它们是如何工作的。只是因为学习我们以前不知道的东西很有趣。
如果您是初学者,可以使用这些笔记来更深入地了解 JavaScript。我希望这些笔记能激励你花更多的时间阅读规范。
如果您是专业的开发人员,您可以将这些示例视为我们心爱的 JavaScript 的所有怪癖和意想不到的优势的绝佳参考。
无论如何,请阅读此内容。你可能会找到新的东西。
6.正确的学习JavaScript
https://github.com/braziljs/js-the-right-way
关于 JS 最佳实践、公认的编码标准和 Web 链接的易于阅读的快速参考
7.JavaScript 进阶问题列表
https://github.com/lydiahallie/javascript-questions
从基础到高级:测试您对 JavaScript 的了解程度,更新您的知识,或准备您的编码面试!
8. 干净的代码javascript
https://github.com/ryanmcdermott/clean-code-javascript
介绍
变量
职能
对象和数据结构
课程
坚硬的
测试
并发
错误处理
格式化
注释
翻译
适用于 JavaScript 的清洁代码概念
9.每个 JavaScript 开发人员都应该知道的 33 个概念
https://github.com/leonardomso/33-js-concepts
调用堆栈
原始类型
值类型和引用类型
隐式、显式、标称、结构化和鸭子类型
== vs === vs typeof
函数作用域、块作用域和词法作用域
表达式与语句
IIFE、模块和命名空间
消息队列和事件循环
setTimeout、setInterval 和 requestAnimationFrame
JavaScript 引擎
位运算符、类型数组和数组缓冲区
DOM 和布局树
工厂和班级
this,调用,应用和绑定
new、构造函数、instanceof 和 Instances
原型继承和原型链
Object.create 和 Object.assign
映射,减少,过滤
纯函数、副作用、状态突变和事件传播
闭包
高阶函数
递归
集合和生成器
承诺
异步/等待
数据结构
昂贵的操作和大 O 表示法
算法
继承、多态和代码重用
设计模式
部分应用、Currying、Compose 和 Pipe
清洁代码
每个开发人员都应该知道的 33 个 JavaScript 概念。
10.ES6 人类版
https://github.com/metagrover/ES6-for-humans
let
,const
和块作用域箭头函数
默认函数参数
扩展/休息运算符
对象文字扩展
八进制和二进制字面量
数组和对象解构
超级对象
模板文字和分隔符
for...of vs for...in
地图和弱地图
集和弱集
ES6 中的类
象征
迭代器
发电机
承诺
编写 ES6 的 kickstarter 指南
11.很棒的 JavaScript
一组很棒的浏览器端JavaScript库、资源和闪亮的东西。
很棒的 JavaScript
代码高亮
加载状态
验证
键盘包装
旅游和指南
通知
滑块
范围滑块
表单小部件
提示
模态和弹出窗口
滚动
菜单
表格/网格
构架
样板
图片
文件
函数式编程
反应式编程
数据结构
日期
细绳
数字
贮存
颜色
I18n 和 L10n
控制流
路由
安全
日志
正则表达式
媒体
语音控制
API
流媒体
视觉检测
浏览器检测
操作系统
基准
机器学习
时间线
电子表格
包管理器
组件管理
装载机
打包机
类型检查器
测试框架
质量检查工具
MVC 框架和库
节点驱动的 CMS 框架
模板引擎
文章/帖子
数据可视化
编辑
文档
实用程序
用户界面
手势
地图
排版
动画
图像处理
ES6
发电机
全文搜索
SDK
杂项
播客
12.现代 JavaScript 备忘单
https://github.com/mbeaudru/modern-js-cheatsheet
本指南的目的不是从头开始教你 JavaScript,而是帮助具有基本知识的开发人员,他们可能因为使用的 JavaScript 概念而难以熟悉现代代码库(或者比如说学习 React)。
现代 JavaScript 备忘单
范围
可变突变
变量声明:var、const、let
箭头函数
函数默认参数值
解构对象和数组
数组方法 - map / filter / reduce
扩展运算符“...”
对象属性简写
承诺
模板文字
标记的模板文字
进口/出口
JavaScript这个
班级
扩展和超级关键字
异步等待
真/假
变形/变态
发电机
静态方法
简短说明
示例代码
详细解释
外部资源
简洁
这个参考
示例代码
详细解释
有用的资源
外部资源
示例代码说明
有用的资源
Array.prototype.map()
Array.prototype.filter()
Array.prototype.reduce()
Array.prototype.find()
示例代码
解释
外部资源
在可迭代对象中(如数组)
函数休息参数
对象属性传播
示例代码
解释
外部资源
解释
外部资源
创造承诺
Promise 处理程序的使用
示例代码
解释
外部资源
示例代码
外部资源
外部资源
命名导出
默认导入/导出
示例代码说明
外部资源
外部资源
样品
外部资源
示例代码
外部资源
示例代码
示例代码说明
错误处理
外部资源
外部资源
变形
变质现象
外部资源
外部资源
从静态方法调用其他静态方法
从非静态方法调用静态方法
简短说明
示例代码
详细说明
外部资源
动机
补充资源
介绍
目录
观念
词汇表
13.JS 提示
https://github.com/loverajoel/jstips
4 -通过更改的道具和状态检查使您的页面重新呈现的原因
73 -没有副作用的哈希映射
72 -冒险家反应指南(上)
71 - VueJS,VueJS 如何在数据绑定中进行复制更新替换
70 -挑选和拒绝对象属性
69 -增强 React 组件,组合
68 -为什么你应该在相等比较中使用 Object.is()
67 - JS 中的递归、迭代和尾调用
66 -状态到道具映射与内存
65 -点击快速调试
64 - 3 阵列黑客
63 -使用 Websocket 超时
62 -防止在 AngularJs 中创建不需要的范围
61 -将对象绑定到函数
60 -三个有用的技巧
59 - ES6,var vs let
58 -函数式编程中的中断或继续循环
57 - JS 中的逗号运算符
56 -复制到剪贴板
55 -使用数组创建一个简单的循环
54 -如何在函数中使用可选参数(带有可选回调)
53 -获取文件扩展名
52 -使用“新”运算符返回值
51 - DOM 事件监听变得容易
50 -有用的控制台日志记录技巧
49 -提取 Unix 时间戳的最简单方法
48 -减少内置函数的使用
47 -基础:声明
46 -在纯 JS 中检测文档就绪
45 -计算数组的最大值/最小值
44 -了解传递机制
43 -在函数参数中使用解构
42 -防止不适用的攻击
41 -数组平均值和中位数
40 -使用 JSON.stringify
39 -高级属性
38 -展平多维数组
37 -对数组进行重复数据删除
36 -观察扩展中的 DOM 变化
35 -赋值运算符
34 -实现异步循环
33 -使用一行轻松创建范围 0...N
32 -
Map()
救援:为对象属性添加顺序31 -避免修改或传递
arguments
给其他函数——它会扼杀优化30 -将真/假值转换为布尔值
29 -通过记忆加速递归函数
28 -柯里化与部分应用
27 -短路评估
26 -过滤和排序字符串列表
25 -使用立即调用的函数表达式
24 -使用
===
代替==
23 -转换为数字的快速方法
22 -清空数组
21 -随机排列数组
20 -返回对象以启用函数链接
19 -安全字符串连接
18 -截断快速(但有风险)的方式
17 - Node.js:如果模块不是“必需的”,则运行它
16 -将参数传递给回调函数
15 -使用包含子句的更简单的方法
indexOf
14 -胖箭头函数#ES6
13 -测量代码块的性能
12 - ES6 函数中的伪强制参数 #ES6
11 -吊装
10 -检查属性是否在对象中
09 -模板字符串
08 -将节点列表转换为数组
07 - “使用严格”并变得懒惰
06 -为数组和单个元素编写单个方法
05 -和之间的差异
undefined
null
04 -对带有重音字符的字符串进行排序
03 -改进嵌套条件
02 - ReactJS - 子组件中的键很重要
01 - AngularJS:
$digest
vs$apply
00 -在数组中插入项目
这是一个很棒的项目,关于简短而有用的 JavaScript 技巧,可让您改进代码编写。在不到 2 分钟的时间内,您将能够阅读有关性能、约定、技巧、面试问题以及这门令人敬畏的语言的未来为我们提供的所有项目。
14.从零开始的 JavaScript 堆栈
https://github.com/verekia/js-stack-from-scratch
01 - 节点,纱线,package.json
02 - Babel、ES6、ESLint、Flow、Jest、Husky
03 - 快递,Nodemon,PM2
04 - Webpack、React、HMR
05 - Redux,不可变,获取
06 - React 路由器,服务器端渲染,头盔
07 - Socket.IO
08 - 引导,JSS
09 - Travis,工作服,Heroku
这是组装 JavaScript 堆栈的直截了当的指南。它需要一些通用的编程知识和 JavaScript 基础知识。它侧重于将工具连接在一起,并为您提供每个工具的最简单示例。您可以将本教程视为从头开始编写自己的样板的一种方式。
15.很棒的 JavaScript 项目
https://github.com/Vishal-raj-1/Awesome-JavaScript-Projects
Awesome Javscript Projects 网站包含许多很棒的 Vanilla Javascript 项目,其中每个项目都会教你一些新的和重要的 javscript 概念。它包括功能组件、类组件、数学对象、箭头函数、API 等概念。
16.JavaScript30
https://github.com/wesbos/JavaScript30
初学者文件 + JavaScript 30 天挑战的完整解决方案。
17.项目指南
https://github.com/elsewhencode/project-guidelines
吉特
一些 Git 规则
Git 工作流程
编写好的提交信息
文档
环境
一致的开发环境
一致的依赖关系
依赖项
测试
结构和命名
代码风格
一些代码风格指南
执行代码风格标准
日志记录
API
API设计
API 安全性
API 文档
虽然开发一个新项目对你来说就像在一片绿地上滚动,但对其他人来说,维护它是一个潜在的黑暗扭曲的噩梦。下面是我们发现、编写和收集的指南列表,这些指南(我们认为)在elsewhen的大多数 JavaScript 项目中都非常有效。
18.Node.js 最佳实践
https://github.com/goldbergyoni/nodebestpractices
一、项目结构实践(五)2.错误处理实践(12)3.代码风格实践(12)4. 测试和整体质量实践 (13)5. 走向生产实践 (19)6. 安全实践 (25) 7. 性能实践(二)(Work In Progress️ ✍️ )8. Docker 实践(15)
这个存储库是对 Node.js 最佳实践的顶级内容以及合作者在此撰写的内容的总结和整理
19.JavaScript 和 Node.js 测试最佳实践
https://github.com/goldbergyoni/javascript-testing-best-practices
本指南可以将您的测试技能提升到一个新的水平
20.JavaScript 面试问答
https://github.com/sudheerj/javascript-interview-questions
1 | 在 JavaScript 中创建对象的可能方式有哪些 |
2 | 什么是原型链 |
3 | 调用、应用和绑定有什么区别 |
4 | 什么是 JSON 及其常用操作 |
5 | 数组切片方法的目的是什么 |
6 | 数组拼接方法的目的是什么 |
7 | 切片和拼接有什么区别 |
8 | 你如何比较对象和地图 |
9 | == 和 === 运算符有什么区别 |
10 | 什么是 lambda 或箭头函数 |
11 | 什么是一级函数 |
12 | 什么是一阶函数 |
13 | 什么是高阶函数 |
14 | 什么是一元函数 |
15 | 什么是柯里化函数 |
16 | 什么是纯函数 |
17 | let 关键字的作用是什么 |
18 | let 和 var 有什么区别 |
19 | 选择名称let作为关键字的原因是什么 |
20 | 如何在 switch 块中重新声明变量而不会出错 |
21 | 什么是时间死区 |
22 | 什么是 IIFE(立即调用函数表达式) |
23 | 您如何在 JavaScript 中解码或编码 URL? |
24 | 什么是备忘 |
25 | 什么是吊装 |
26 | ES6 中的类是什么 |
27 | 什么是闭包 |
28 | 什么是模块 |
29 | 为什么需要模块 |
30 | javascript中的作用域是什么 |
31 | 什么是服务人员 |
32 | 如何使用 service worker 操作 DOM |
33 | 如何在 service worker 重启时重用信息 |
34 | 什么是索引数据库 |
35 | 什么是网络存储 |
36 | 什么是发布消息 |
37 | 什么是饼干 |
38 | 为什么需要 Cookie |
39 | cookie 中有哪些选项 |
40 | 如何删除 cookie |
41 | cookie、本地存储和会话存储有什么区别 |
42 | localStorage 和 sessionStorage 的主要区别是什么 |
43 | 您如何访问网络存储 |
44 | 会话存储上可用的方法有哪些 |
45 | 什么是存储事件及其事件处理程序 |
46 | 为什么需要网络存储 |
47 | 你如何检查网络存储浏览器支持 |
48 | 你如何检查网络工作者浏览器支持 |
49 | 举个 web worker 的例子 |
50 | webworkers对DOM有什么限制 |
51 | 什么是承诺 |
52 | 为什么需要承诺 |
53 | 承诺的三种状态是什么 |
54 | 什么是回调函数 |
55 | 为什么我们需要回调 |
56 | 什么是回调地狱 |
57 | 什么是服务器发送事件 |
58 | 您如何接收服务器发送的事件通知 |
59 | 如何检查浏览器对服务器发送事件的支持 |
60 | 服务器发送的事件有哪些可用的事件 |
61 | 承诺的主要规则是什么 |
62 | 什么是回调中的回调 |
63 | 什么是承诺链 |
64 | 什么是promise.all |
65 | 承诺中比赛方法的目的是什么 |
66 | 什么是javascript中的严格模式 |
67 | 为什么需要严格模式 |
68 | 你如何声明严格模式 |
69 | 双感叹号的目的是什么 |
70 | 删除运算符的目的是什么 |
71 | 什么是 typeof 运算符 |
72 | 什么是未定义属性 |
73 | 什么是空值 |
74 | null 和 undefined 有什么区别 |
75 | 什么是评估 |
76 | 窗口和文档有什么区别 |
77 | 你如何在javascript中访问历史记录 |
78 | 你如何检测大写锁定键是否打开 |
79 | 什么是 NaN |
80 | 未声明变量和未定义变量有什么区别 |
81 | 什么是全局变量 |
82 | 全局变量有什么问题 |
83 | 什么是 NaN 属性 |
84 | isFinite 函数的目的是什么 |
85 | 什么是事件流 |
86 | 什么是事件冒泡 |
87 | 什么是事件捕获 |
88 | 如何使用 JavaScript 提交表单 |
89 | 您如何找到操作系统详细信息 |
90 | 文档加载和 DOMContentLoaded 事件有什么区别 |
91 | 本机,主机和用户对象之间有什么区别 |
92 | 用于调试 JavaScript 代码的工具或技术有哪些 |
93 | 与回调相比,promise 的优缺点是什么 |
94 | 属性和属性有什么区别 |
95 | 什么是同源策略 |
96 | void 0的目的是什么 |
97 | JavaScript 是编译型语言还是解释型语言 |
98 | JavaScript 是区分大小写的语言吗 |
99 | Java和JavaScript之间有什么关系吗 |
100 | 什么是事件 |
101 | 谁创建了 JavaScript |
102 | preventDefault 方法有什么用 |
103 | stopPropagation 方法有什么用 |
104 | return false 涉及哪些步骤 |
105 | 什么是物料清单 |
106 | setTimeout 有什么用 |
107 | setInterval 有什么用 |
108 | 为什么 JavaScript 被视为单线程 |
109 | 什么是事件委托 |
110 | 什么是 ECMAScript |
111 | 什么是 JSON |
112 | JSON的语法规则是什么 |
113 | JSON字符串化的目的是什么 |
114 | 你如何解析 JSON 字符串 |
115 | 为什么需要 JSON |
116 | 什么是 PWA |
117 | clearTimeout 方法的目的是什么 |
118 | clearInterval 方法的目的是什么 |
119 | 你如何在javascript中重定向新页面 |
120 | 如何检查字符串是否包含子字符串 |
121 | 你如何在javascript中验证电子邮件 |
122 | 如何使用 javascript 获取当前 url |
123 | 位置对象的各种url属性是什么 |
124 | 如何在javascript中获取查询字符串值 |
125 | 如何检查对象中是否存在键 |
126 | 你如何循环或枚举javascript对象 |
127 | 你如何测试一个空对象 |
128 | 什么是参数对象 |
129 | 你如何将字符串的第一个字母变成大写 |
130 | for循环的优缺点是什么 |
131 | 你如何在javascript中显示当前日期 |
132 | 你如何比较两个日期对象 |
133 | 如何检查一个字符串是否以另一个字符串开头 |
134 | 你如何在javascript中修剪字符串 |
135 | 你如何在javascript中添加键值对 |
136 | '!--' 符号是否表示特殊运算符 |
137 | 如何为变量分配默认值 |
138 | 你如何定义多行字符串 |
139 | 什么是应用外壳模型 |
140 | 我们可以为函数定义属性吗 |
141 | 查找函数期望的参数数量的方法是什么 |
142 | 什么是 polyfill |
143 | 什么是 break 和 continue 语句 |
144 | 什么是js标签 |
145 | 将声明放在顶部有什么好处 |
146 | 初始化变量有什么好处 |
147 | 创建新对象的建议是什么 |
148 | 如何定义 JSON 数组 |
149 | 你如何生成随机整数 |
150 | 你能写一个随机整数函数来打印一个范围内的整数吗 |
151 | 什么是摇树 |
152 | 摇树需要什么 |
153 | 是否推荐使用 eval |
154 | 什么是正则表达式 |
155 | 正则表达式中可用的字符串方法有哪些 |
156 | 正则表达式中的修饰符是什么 |
157 | 什么是正则表达式模式 |
158 | 什么是正则表达式对象 |
159 | 如何在字符串中搜索模式 |
160 | exec方法的目的是什么 |
161 | 如何更改 HTML 元素的样式 |
162 | 1+2+'3'的结果是什么 |
163 | 什么是调试器语句 |
164 | 调试断点的目的是什么 |
165 | 我可以使用保留字作为标识符吗 |
166 | 如何检测移动浏览器 |
167 | 如何检测没有正则表达式的移动浏览器 |
168 | JS如何获取图片的宽高 |
169 | 你如何发出同步 HTTP 请求 |
170 | 你如何发出异步 HTTP 请求 |
171 | 你如何在javascript中将日期转换为另一个时区 |
172 | 用于获取窗口大小的属性是什么 |
173 | 什么是javascript中的条件运算符 |
174 | 您可以在条件运算符上应用链接吗 |
175 | 页面加载后执行javascript的方式有哪些 |
176 | 原型和原型有什么区别 |
177 | 举一个你真的需要分号的例子 |
178 | 什么是冻结法 |
179 | 冷冻法的目的是什么 |
180 | 为什么我需要使用冻结方法 |
181 | 如何检测浏览器语言偏好 |
182 | 如何使用javascript将字符串转换为标题大小写 |
183 | 你如何检测页面中禁用的javascript |
184 | javascript支持的各种运算符有哪些 |
185 | 什么是休息参数 |
186 | 如果不使用 rest 参数作为最后一个参数会发生什么 |
187 | javascript中可用的按位运算符有哪些 |
188 | 什么是扩展运算符 |
189 | 如何判断物体是否冻结 |
190 | 你如何确定两个值相同或不使用对象 |
191 | 使用对象是方法的目的是什么 |
192 | 如何将属性从一个对象复制到另一个对象 |
193 | assign方法有哪些应用 |
194 | 什么是代理对象 |
195 | 封印法的目的是什么 |
196 | 封印法的应用有哪些 |
197 | 冷冻和密封方法有什么区别 |
198 | 如何判断一个物体是否密封 |
199 | 你如何获得可枚举的键值对 |
200 | Object.values 和 Object.entries 方法的主要区别是什么 |
201 | 如何获取任何对象的键列表 |
202 | 如何使用原型创建对象 |
203 | 什么是弱集 |
204 | WeakSet 和 Set 有什么区别 |
205 | 列出 WeakSet 上可用的方法集合 |
206 | 什么是弱映射 |
207 | WeakMap 和 Map 有什么区别 |
208 | 列出 WeakMap 上可用的方法集合 |
209 | uneval 的目的是什么 |
210 | 如何对 URL 进行编码 |
211 | 你如何解码一个 URL |
212 | 你如何打印网页的内容 |
213 | uneval 和 eval 有什么区别 |
214 | 什么是匿名函数 |
215 | 局部变量和全局变量的优先顺序是什么 |
216 | 什么是 javascript 访问器 |
217 | 如何在 Object 构造函数上定义属性 |
218 | get 和 defineProperty 有什么区别 |
219 | Getter 和 Setter 的优点是什么 |
220 | 我可以使用 defineProperty 方法添加 getter 和 setter |
221 | switch-case的目的是什么 |
222 | 使用 swtich case 需要遵循哪些约定 |
223 | 什么是原始数据类型 |
224 | 访问对象属性的不同方法是什么 |
225 | 函数参数规则有哪些 |
226 | 什么是错误对象 |
227 | 当您收到语法错误时 |
228 | 与错误对象有什么不同的错误名称 |
229 | 错误处理中的各种语句是什么 |
230 | javascript中有哪两种循环 |
231 | 什么是nodejs |
232 | 什么是国际对象 |
233 | 您如何执行特定语言的日期和时间格式 |
234 | 什么是迭代器 |
235 | 同步迭代是如何工作的 |
236 | 什么是事件循环 |
237 | 什么是调用栈 |
238 | 什么是事件队列 |
239 | 什么是装饰器 |
240 | Intl对象的属性是什么 |
241 | 什么是一元运算符 |
242 | 如何对数组中的元素进行排序 |
243 | 排序数组时compareFunction的目的是什么 |
244 | 你如何反转数组 |
245 | 如何在数组中找到最小值和最大值 |
246 | 如何在没有数学函数的情况下找到最小值和最大值 |
247 | 什么是空话和它的目的 |
248 | 如何获取模块的元数据 |
249 | 什么是逗号运算符 |
250 | 逗号运算符有什么好处 |
251 | 什么是打字稿 |
252 | javascript和打字稿有什么区别 |
253 | 打字稿比javascript有什么优势 |
254 | 什么是对象初始化器 |
255 | 什么是构造方法 |
256 | 如果你在一个类中多次编写构造函数会发生什么 |
257 | 如何调用父类的构造函数 |
258 | 如何获取对象的原型 |
259 | 如果我为 getPrototype 方法传递字符串类型会发生什么 |
260 | 你如何将一个对象的原型设置为另一个对象 |
261 | 你如何检查一个对象是否可以扩展 |
262 | 如何防止对象扩展 |
263 | 使对象不可扩展的不同方法是什么 |
264 | 如何在一个对象上定义多个属性 |
265 | javascript中的意思是什么 |
266 | 什么是 javascript 中的混淆 |
267 | 为什么需要混淆 |
268 | 什么是缩小 |
269 | 缩小有什么好处 |
270 | 混淆和加密有什么区别 |
271 | 常用的缩小工具有哪些 |
272 | 您如何使用 javascript 执行表单验证 |
273 | 如何在没有 javascript 的情况下执行表单验证 |
274 | 可用于约束验证的 DOM 方法有哪些 |
275 | 有哪些可用的约束验证 DOM 属性 |
276 | 有效性属性列表是什么 |
277 | 举例说明 rangeOverflow 属性的用法 |
278 | javascript 中是否提供枚举功能 |
279 | 什么是枚举 |
280 | 如何列出对象的所有属性 |
281 | 如何获取对象的属性描述符 |
282 | 属性描述符提供哪些属性 |
283 | 你如何扩展课程 |
284 | 如何在不重新加载页面的情况下修改 url |
285 | 如何检查数组是否包含特定值 |
286 | 你如何比较标量数组 |
287 | 如何从获取参数中获取值 |
288 | 如何用逗号打印数字作为千位分隔符 |
289 | java和javascript有什么区别 |
290 | javascript是否支持命名空间 |
291 | 你如何声明命名空间 |
292 | 如何从父页面调用 iframe 中的 javascript 代码 |
293 | 如何从日期获取时区偏移量 |
294 | 如何动态加载 CSS 和 JS 文件 |
295 | 在 DOM 中查找 HTML 元素有哪些不同的方法 |
296 | 什么是 jQuery |
297 | 什么是 V8 JavaScript 引擎 |
298 | 为什么我们称javascript为动态语言 |
299 | 什么是空运算符 |
300 | 如何设置光标等待 |
301 | 如何创建无限循环 |
302 | 为什么需要避免 with 语句 |
303 | 下面for循环的输出是什么 |
304 | 列出 ES6 的一些特性 |
305 | 什么是 ES6 |
306 | 我可以重新声明 let 和 const 变量吗 |
307 | const 变量是否使值不可变 |
308 | 什么是默认参数 |
309 | 什么是模板文字 |
310 | 如何在模板文字中编写多行字符串 |
311 | 什么是嵌套模板 |
312 | 什么是标记模板 |
313 | 什么是原始字符串 |
314 | 什么是解构赋值 |
315 | 什么是解构赋值的默认值 |
316 | 如何在解构赋值中交换变量 |
317 | 什么是增强的对象字面量 |
318 | 什么是动态导入 |
319 | 动态导入的用例有哪些 |
320 | 什么是类型化数组 |
321 | 模块加载器有什么优势 |
322 | 什么是整理 |
323 | 什么是... of 声明 |
324 | 下面展开运算符数组的输出是什么 |
325 | PostMessage 是否安全 |
326 | 邮件目标来源作为通配符有什么问题 |
327 | 您如何避免收到来自攻击者的 postMessages |
328 | 我可以完全避免使用 postMessages |
329 | postMessages 是否同步 |
330 | Javascript 是什么范式 |
331 | 内部和外部javascript有什么区别 |
332 | JavaScript 比服务器端脚本快吗 |
333 | 如何获取复选框的状态 |
334 | 双波浪号运算符的目的是什么 |
335 | 如何将字符转换为 ASCII 码 |
336 | 什么是 ArrayBuffer |
337 | 下面的字符串表达式的输出是什么 |
338 | 错误对象的目的是什么 |
339 | EvalError 对象的目的是什么 |
340 | 从非严格模式到严格模式抛出的案例错误列表是什么 |
341 | 所有对象都有原型吗 |
342 | 参数和参数有什么区别 |
343 | 数组中某些方法的目的是什么 |
344 | 如何组合两个或多个数组 |
345 | 浅拷贝和深拷贝有什么区别 |
346 | 如何创建特定数量的字符串副本 |
347 | 如何针对正则表达式返回所有匹配的字符串 |
348 | 如何在开头或结尾修剪字符串 |
349 | 使用一元运算符的以下控制台语句的输出是什么 |
350 | javascript是否使用mixins |
351 | 什么是thunk函数 |
352 | 什么是异步 thunk |
353 | 以下函数调用的输出是什么 |
354 | 如何从字符串中删除所有换行符 |
355 | 回流和重绘有什么区别 |
356 | 否定数组会发生什么 |
357 | 如果我们添加两个数组会发生什么 |
358 | 在虚假值上前置加法运算符的输出是什么 |
359 | 如何使用特殊字符创建自我字符串 |
360 | 如何从数组中删除虚假值 |
361 | 如何获取数组的唯一值 |
362 | 什么是解构别名 |
363 | 如何在不使用 map 方法的情况下映射数组值 |
364 | 如何清空数组 |
365 | 你如何将数字四舍五入到某些小数 |
366 | 将数组转换为对象的最简单方法是什么 |
367 | 你如何创建一个包含一些数据的数组 |
368 | 控制台对象的占位符是什么 |
369 | 是否可以将 CSS 添加到控制台消息 |
370 | 控制台对象的dir方法的目的是什么 |
371 | 是否可以在控制台中调试 HTML 元素 |
372 | 如何使用控制台对象以表格格式显示数据 |
373 | 您如何验证参数是否为数字 |
374 | 你如何创建复制到剪贴板按钮 |
375 | 获取时间戳的快捷方式是什么 |
376 | 你如何展平多维数组 |
377 | 什么是最简单的多条件检查 |
378 | 你如何捕获浏览器后退按钮 |
379 | 如何禁用网页中的右键单击 |
380 | 什么是包装对象 |
381 | 什么是 AJAX |
382 | 处理异步代码有哪些不同的方法 |
383 | 如何取消获取请求 |
384 | 什么是网络语音 API |
385 | 什么是最小超时限制 |
386 | 如何在现代浏览器中实现零超时 |
387 | 事件循环中的任务是什么 |
388 | 什么是微任务 |
389 | 什么是不同的事件循环 |
390 | queueMicrotask 的目的是什么 |
391 | 你如何在打字稿文件中使用 javascript 库 |
392 | Promise 和 observables 有什么区别 |
393 | 什么是堆 |
394 | 什么是事件表 |
395 | 什么是微任务队列 |
396 | shim 和 polyfill 有什么区别 |
397 | 如何检测原始或非原始值类型 |
398 | 什么是巴别塔 |
399 | Node.js 是完全单线程的吗 |
400 | 可观察对象的常见用例是什么 |
401 | 什么是 RxJS |
402 | Function构造函数和函数声明有什么区别 |
403 | 什么是短路状态 |
404 | 调整数组大小的最简单方法是什么 |
405 | 什么是可观察的 |
406 | 函数声明和类声明有什么区别 |
407 | 什么是异步函数 |
408 | 你如何防止 Promise 吞噬错误 |
409 | 什么是德诺 |
410 | 你如何在javascript中使对象可迭代 |
411 | 什么是正确的尾调用 |
412 | 你如何检查一个对象是否是一个承诺 |
413 | 如何检测函数是否被称为构造函数 |
414 | arguments对象和rest参数有什么区别 |
415 | 扩展运算符和剩余参数有什么区别 |
416 | 有哪些不同种类的发电机 |
417 | 什么是内置的迭代器 |
418 | for...of 和 for...in 语句有什么区别 |
419 | 如何定义实例和非实例属性 |
420 | isNaN 和 Number.isNaN 有什么区别? |
421 | 如何在没有任何额外括号的情况下调用 IIFE? |
422 | 是否可以在 switch 案例中使用表达式? |
423 | 忽略承诺错误的最简单方法是什么? |
424 | 如何使用 CSS 设置控制台输出样式? |
425 | 什么是无效合并运算符(??)? |
426 | 您如何对控制台输出进行分组和嵌套? |
427 | 密集数组和稀疏数组有什么区别? |
428 | 创建稀疏数组有哪些不同的方法? |
429 | setTimeout、setImmediate 和 process.nextTick 有什么区别? |
一天一套题,学他3年。
好啦,本期内容孙叫兽就分享到这里,我们下期见!你知道的越多,你不知道的越多!友情提示,英文不好的同学可以使用谷歌浏览器右键中英文翻译功能呦!
以上是关于一些前端大牛都在学习的github库的主要内容,如果未能解决你的问题,请参考以下文章