最新公告
  • 欢迎您光临网站无忧模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 12 个 GitHub 上超火的 JavaScript 奇技淫巧项目,找到写 JavaScript 的灵感!

    正文概述 掘金(天明夜尽)   2020-12-15   366

    大家好,我是你们的 猫哥,一个不喜欢吃鱼、又不喜欢喵 的超级猫 ~

    前言

    猫哥是一个常年混迹在 GitHub 上的猫星人,所以发现了不少好的前端开源项目、常用技巧,在此分享给大家。

    已经推荐了 面试项目css奇技淫巧项目代码规范项目数据结构与算法项目管理后台模板前端必备在线工具 等专题的近 100 个优秀项目了。

    平时如何发现好的开源项目,可以看看这篇文章:GitHub 上能挖矿的神仙技巧 - 如何发现优秀开源项目

    以下为【前端GitHub】的第 12 期精华内容。

    12 个 GitHub 上超火的 JavaScript 奇技淫巧项目,找到写 JavaScript 的灵感!


    1. 30-seconds-of-code

    12 个 GitHub 上超火的 JavaScript 奇技淫巧项目,找到写 JavaScript 的灵感!

    该项目讲的是满足你所有开发需求的简短代码段,里面都是些经常会用到而且是非常经典的代码,非常值得学习!

    比如 JavaScript 模块就分为了 All、Array、Browser、Date、Function、Math、Node、Object、String 方便学习的。

    12 个 GitHub 上超火的 JavaScript 奇技淫巧项目,找到写 JavaScript 的灵感!

    比如:你必须知道的 4 种 JavaScript 数组方法

    Array.prototype.map()

    const arr = [1, 2, 3];
    const double = x => x * 2;
    arr.map(double); // [2, 4, 6]
    

    Array.prototype.filter()

    const arr = [1, 2, 3];
    const isOdd = x => x % 2 === 1;
    arr.filter(isOdd); // [1, 3]
    

    Array.prototype.reduce()

    const arr = [1, 2, 3];
    
    const sum = (x, y) => x + y;
    arr.reduce(sum, 0); // 6
    
    const increment = (x, y) => [...x, x[x.length - 1] + y];
    arr.reduce(increment, [0]); // [0, 1, 3, 6]
    

    Array.prototype.find()

    const arr = [1, 2, 3];
    const isOdd = x => x % 2 === 1;
    arr.find(isOdd); // 1
    

    又比如:如何在 JavaScript 中实现睡眠功能?

    同步版本

    const sleepSync = (ms) => {
      const end = new Date().getTime() + ms;
      while (new Date().getTime() < end) { /* do nothing */ }
    }
    
    const printNums = () => {
      console.log(1);
      sleepSync(500);
      console.log(2);
      console.log(3);
    };
    
    printNums(); // Logs: 1, 2, 3 (2 and 3 log after 500ms)
    

    异步版本

    const sleep = (ms) =>
      new Promise(resolve => setTimeout(resolve, ms));
    
    const printNums = async() => {
      console.log(1);
      await sleep(500);
      console.log(2);
      console.log(3);
    };
    
    printNums(); // Logs: 1, 2, 3 (2 and 3 log after 500ms)
    

    其实上面讲到的事例里面还提供 api 和方法的讲解的,方便读者能看懂的,这里就不写出来了。

    还想学更多的 经典 js 代码片段,请看下面的仓库

    2. 33-js-concepts

    12 个 GitHub 上超火的 JavaScript 奇技淫巧项目,找到写 JavaScript 的灵感!

    JavaScript开发者应懂的 33 个概念

    这个项目是为了帮助开发者掌握 JavaScript 概念而创立的。它不是必备,但在未来学习(JavaScript)中,可以作为一篇指南。

    目录

    调用堆栈
    原始类型
    值类型和引用类型
    隐式, 显式, 名义和鸭子类型
    == 与 ===, typeof 与 instanceof
    this, call, apply 和 bind
    函数作用域, 块级作用域和词法作用域
    闭包
    map, reduce, filter 等高阶函数
    表达式和语句
    变量提升
    Promise
    立即执行函数, 模块化, 命名空间
    递归
    算法
    数据结构
    消息队列和事件循环
    setTimeout, setInterval 和 requestAnimationFrame
    继承, 多态和代码复用
    按位操作符, 类数组对象和类型化数组
    DOM 树和渲染过程
    new 与构造函数, instanceof 与实例
    原型继承与原型链
    Object.create 和 Object.assign
    工厂函数和类
    设计模式
    Memoization
    纯函数, 函数副作用和状态变化
    耗性能操作和时间复杂度
    JavaScript 引擎
    二进制, 十进制, 十六进制, 科学记数法
    偏函数, 柯里化, Compose 和 Pipe
    代码整洁之道
    

    而且每个主题都包含了相关的精彩文章和视频,非常适合学习。

    12 个 GitHub 上超火的 JavaScript 奇技淫巧项目,找到写 JavaScript 的灵感!

    3. javascript-questions

    12 个 GitHub 上超火的 JavaScript 奇技淫巧项目,找到写 JavaScript 的灵感!

    JavaScript 进阶问题列表。

    从基础到高级:测试您对 JavaScript 的了解程度,稍微刷新一下知识或为编写代码面试做准备!

    比如下面会输出是什么?

    let a = 3
    let b = new Number(3)
    let c = 3
    
    console.log(a == b)
    console.log(a === b)
    console.log(b === c)
    
    • A: true false true
    • B: false false true
    • C: true false false
    • D: false true true

    答案: C

    解释:

    new Number() 是一个内建的函数构造器。虽然它看着像是一个 number,但它实际上并不是一个真实的 number:它有一堆额外的功能并且它是一个对象。

    当我们使用 == 操作符时,它只会检查两者是否拥有相同的。因为它们的值都是 3,因此返回 true

    然后,当我们使用 === 操作符时,两者的值以及类型都应该是相同的。new Number() 是一个对象而不是 number,因此返回 false

    4. JavaScript 30

    12 个 GitHub 上超火的 JavaScript 奇技淫巧项目,找到写 JavaScript 的灵感!

    使用原生 JavaScript 在 30 天内完成 30 个项目。

    每天完成的 HTML, CSS 和 javascript 解决方案。

    5. Codewars

    和 leetcode 有点类似,也是在平台上和其他人一起完成真实的代码挑战,提升你的技术。

    相比于其他平台,codewars 给出的问题更加贴合实际工作与生活,很多题都会给出题目背景,更有代入感。

    可以提升技能:在社区创建的 kata 上挑战自我,以增强各种技能。掌握您当前选择的语言,或扩展您对新语言的理解。

    要加入这个社区,您必须先答题证明自己的技能才可以的。

    6. ES6 入门教程

    12 个 GitHub 上超火的 JavaScript 奇技淫巧项目,找到写 JavaScript 的灵感!

    入门的前端都应该都知道的 ES6 开源书籍,猫哥初入前端时就是学了 阮一峰 老师开源的 ES6 内容的,一直实用至今!

    《ECMAScript 6 入门教程》是一本开源的 JavaScript 语言教程,全面介绍 ECMAScript 6 新引入的语法特性。

    本书覆盖 ES6 与上一个版本 ES5 的所有不同之处,对涉及的语法知识给予详细介绍,并给出大量简洁易懂的示例代码。

    本书为中级难度,适合已经掌握 ES5 的读者,用来了解这门语言的最新发展;也可当作参考手册,查寻新增的语法点。

    如果你是 JavaScript 语言的初学者,建议先学完《JavaScript 语言入门教程》,再来看这本书。

    7. JavaScript 教程

    本教程全面介绍 JavaScript 核心语法,覆盖了 ES5 和 DOM 规范的所有内容。

    也是 阮一峰 老师写的,真的非常通俗易懂,非常适合前端学习。

    不得不说,知识掌握通透的人写的技术文章,非常能让人容易明白。

    内容上从最简单的讲起,循序渐进、由浅入深,力求清晰易懂。

    所有章节都带有大量的代码实例,便于理解和模仿,可以用到实际项目中,即学即用。

    本教程适合初学者当作 JavaScript 语言入门教程,学完后就可以承担实际的网页开发工作,也适合当作日常使用的参考手册。

    目录

    入门篇
    数据类型 
    运算符 
    语法专题
    标准库
    面向对象编程
    异步操作 
    DOM
    事件
    浏览器模型
    附录:网页元素接口
    

    8. 现代 JavaScript 教程

    以最新的 JavaScript 标准为基准。通过简单但足够详细的内容,为你讲解从基础到高阶的 JavaScript 相关知识。

    课程的核心内容包含 2 部分,涵盖了 JavaScript 编程语言相关知识和浏览器行为。此外还有一系列的专题文章。

    JavaScript 编程语言

    在这儿我们将从头开始学习 JavaScript,也会学习 OOP 等相关高级概念。

    本教程专注于语言本身,我们默认使用最小环境。

    12 个 GitHub 上超火的 JavaScript 奇技淫巧项目,找到写 JavaScript 的灵感!

    浏览器:文档,事件,接口

    学习如何管理浏览器页面:添加元素,操纵元素的大小和位置,动态创建接口并与访问者互动。

    12 个 GitHub 上超火的 JavaScript 奇技淫巧项目,找到写 JavaScript 的灵感!

    其他文章

    教程的前两部分未涉及的其他主题的内容列表。此处没有明确的层次结构,你可以按你需要的顺序阅读文章。

    12 个 GitHub 上超火的 JavaScript 奇技淫巧项目,找到写 JavaScript 的灵感!

    9. MDN

    12 个 GitHub 上超火的 JavaScript 奇技淫巧项目,找到写 JavaScript 的灵感!

    MDN Web Docs 网站提供开放网络(Open Web)技术有关的信息,包括用于网站和渐进式网络应用的 HTML、CSS 和 API。

    Mozilla, Microsoft, Google, Samsung 和 W3C 将合作把 MDN 打造成最好的 Web 文档。

    所以在这个平台学习 web 技术算是比较权威的了。

    源于开发者,服务开发者。

    10. clean-code-javascript

    优秀的 JS 代码规范。

    12 个 GitHub 上超火的 JavaScript 奇技淫巧项目,找到写 JavaScript 的灵感!

    比如:对相同类型的变量使用相同的关键字

    Bad:

    getUserInfo(); 
    getClientData(); 
    getCustomerRecord();
    

    Good:

    getUser();
    

    再比如:使用可搜索的命名

    在开发过程中,我们阅读代码的时间会远远超过编写代码的时间,因此保证代码的可读性与可搜索会非常重要。切记,没事不要坑自己。

    Bad:

    //525600到底啥意思?
    for (var i = 0; i < 525600; i++) {
      runCronJob();
    }
    

    Good:

    // 声明为全局变量
    var MINUTES_IN_A_YEAR = 525600;
    for (var i = 0; i < MINUTES_IN_A_YEAR; i++) {
      runCronJob();
    }
    

    11. TypeScript 入门教程

    从 JavaScript 程序员的角度总结思考,循序渐进的理解 TypeScript。

    这个教程真的是猫哥看过的最完整而简洁、并且通俗易懂的 TypeScript 教程!

    比如 类型别名:类型别名用来给一个类型起个新名字。

    简单的例子:

    type Name = string;
    type NameResolver = () => string;
    type NameOrResolver = Name | NameResolver;
    function getName(n: NameOrResolver): Name {
        if (typeof n === 'string') {
            return n;
        } else {
            return n();
        }
    }
    
    

    上例中,我们使用 type 创建类型别名。

    类型别名常用于联合类型。

    12. w3school

    前端必须知道的 Web 技术教程平台,虽然很多前端都知道了,但是有必要提一下。

    领先的 Web 技术教程 - 全部免费。

    在 W3School,你可以找到你所需要的所有的网站建设教程。

    从基础的 HTML 到 CSS,乃至进阶的 XML、SQL、JS。

    在这里学习前端最好的地方就是有 demo 可能学习,可以验证你的效果或者输出。

    12 个 GitHub 上超火的 JavaScript 奇技淫巧项目,找到写 JavaScript 的灵感!

    最后

    12 个 GitHub 上超火的 JavaScript 奇技淫巧项目,找到写 JavaScript 的灵感!

    不知不觉,已经写到第 12 期了呢,已经分享了接近 100 个好的前端项目了呢,往期精文请看下方宝藏仓库,点击很危险,请慎入!

    平时如何发现好的开源项目,可以看看这两篇文章:如何在 GitHub 上发现优秀开源项目 和 如何使用 GitHub 进行精准搜索的神仙技巧。

    超级猫的 wx:CB834301747 ,微信搜 “前端GitHub”,回复 “电子书” 即可以获得 160 本前端精华书籍哦。

    往期精文

    • 10 个 GitHub 上超火的前端面试项目,打造自己的加薪宝库!

    • 10 个 GitHub 上超火的 CSS 技巧项目,找到写 CSS 的灵感!

    • 11 个超火的前端必备在线工具,终于有时间上班摸鱼了

    • 11 个超火的大厂前端代码规范,你也能写出诗一样的代码!

    觉得有用 ?喜欢就收藏,顺便点个赞吧,你的支持是超级猫最大的鼓励!


    下载网 » 12 个 GitHub 上超火的 JavaScript 奇技淫巧项目,找到写 JavaScript 的灵感!

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元