当前位置: 首页 > 软件库 > Web应用开发 > Web框架 >

33-js-concepts

授权协议 MIT License
开发语言 JavaScript
所属分类 Web应用开发、 Web框架
软件类型 开源软件
地区 不详
投 递 者 曾苗宣
操作系统 跨平台
开源组织
适用人群 未知
 软件概览


33 Concepts Every JS Developer Should Know

33 Concepts Every JavaScript Developer Should Know

Introduction

This repository was created with the intention of helping developers master their concepts in JavaScript. It is not a requirement, but a guide for future studies. It is based on an article written by Stephen Curtis and you can read it here.

�� Considered by GitHub as one of the top open source projects of 2018!

Community

Feel free to submit a PR adding a link to your own recaps or reviews. If you want to translate the repo into your native language, please feel free to do so.

All the translations for this repo will be listed below:


Table of Contents

  1. Call Stack
  2. Primitive Types
  3. Value Types and Reference Types
  4. Implicit, Explicit, Nominal, Structuring and Duck Typing
  5. == vs === vs typeof
  6. Function Scope, Block Scope and Lexical Scope
  7. Expression vs Statement
  8. IIFE, Modules and Namespaces
  9. Message Queue and Event Loop
  10. setTimeout, setInterval and requestAnimationFrame
  11. JavaScript Engines
  12. Bitwise Operators, Type Arrays and Array Buffers
  13. DOM and Layout Trees
  14. Factories and Classes
  15. this, call, apply and bind
  16. new, Constructor, instanceof and Instances
  17. Prototype Inheritance and Prototype Chain
  18. Object.create and Object.assign
  19. map, reduce, filter
  20. Pure Functions, Side Effects and State Mutation
  21. Closures
  22. High Order Functions
  23. Recursion
  24. Collections and Generators
  25. Promises
  26. async/await
  27. Data Structures
  28. Expensive Operation and Big O Notation
  29. Algorithms
  30. Inheritance, Polymorphism and Code Reuse
  31. Design Patterns
  32. Partial Applications, Currying, Compose and Pipe
  33. Clean Code

1. Call Stack

Reference

Articles

Videos

Back to Top


2. Primitive Types

Reference

Articles

Videos

Back to Top


3. Value Types and Reference Types

Articles

Videos

Back to Top


4. Implicit, Explicit, Nominal, Structuring and Duck Typing

Articles

Videos

Books

Back to Top


5. == vs === vs typeof

Articles

Videos

Back to Top


6. Function Scope, Block Scope and Lexical Scope

Books

Articles

Videos

Back to Top


7. Expression vs Statement

Articles

Videos

Back to Top


8. IIFE, Modules and Namespaces

Articles

Videos

Back to Top


9. Message Queue and Event Loop

Articles

Videos

Back to Top


10. setTimeout, setInterval and requestAnimationFrame

Articles

Videos

Back to Top


11. JavaScript Engines

Articles

Videos

Back to Top


12. Bitwise Operators, Type Arrays and Array Buffers

Articles

Videos

Back to Top


13. DOM and Layout Trees

Books

Articles

Videos

Back to Top


14. Factories and Classes

Articles

Videos

Back to Top


15. this, call, apply and bind

Reference

Articles

Videos

Back to Top


16. new, Constructor, instanceof and Instances

Articles

Back to Top


17. Prototype Inheritance and Prototype Chain

Reference

Articles

Videos

Books

Back to Top


18. Object.create and Object.assign

Reference

Articles

Videos

Back to Top


19. map, reduce, filter

Articles

Videos

Back to Top


20. Pure Functions, Side Effects, State Mutation and Event Propagation

Articles

Videos

Back to Top


21. Closures

Reference

Articles

Videos

Back to Top


22. High Order Functions

Books

Articles

Videos

Back to Top


23. Recursion

Articles

Videos

Back to Top


24. Collections and Generators

Reference

Articles

Videos

Back to Top


25. Promises

Reference

Articles

Videos

Back to Top


26. async/await

Reference

Books

Articles

Videos

Back to Top


27. Data Structures

Articles

Videos

Back to Top


28. Expensive Operation and Big O Notation

Articles

Videos

Back to Top


29. Algorithms

Articles

Back to Top


30. Inheritance, Polymorphism and Code Reuse

Reference

Articles

Videos

Back to Top


31. Design Patterns

Books

Articles

Videos

Back to Top


32. Partial Applications, Currying, Compose and Pipe

Books

Articles

Videos

Back to Top


33. Clean Code

Articles

Videos

Back to Top

  • 原文出处:https://github.com/stephentian/33-js-concepts 参考学习用,作为一篇指南 目录 调用堆栈 原始类型 值类型和引用类型 隐式, 显式, 名义和鸭子类型 == 与 ===, typeof 与 instanceof this, call, apply 和 bind 函数作用域, 块级作用域和词法作用域 闭包 map, reduce, filter 等

  • 十一.函数 1.函数的定义 声明式 function test1(){ console.log("lol") } function test2(){ console.log("apex") } test1()//调用函数阶段;选择了test1所以结果为lol 赋值式 va

  • 一、JavaScript基础篇 1、JavaScript 有几种数据类型 基本数据类型:undefined、null、boolean、number、string、symbol(es6的新数据类型) 引用数据类型:object、array、function 2、怎么进行数据类型检测 typeof可以检测 除了 null 以外的基础数据类型,typeof 对于对象来说,除了函数都会显示 objec O

  • 运动框架 链式运动框架 运动停止时,执行函数 运动停止时,开始下一次运动 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA

  • 回顾: css: 层叠样式表 作用: 渲染页面 提供工作效率,将html和样式分离 和html的整合 方式1:内联样式表 通过标签的style属性 <xxx style="..."/> 方式2:内部样式表 通过head的子标签Style子标签 <style type="text/css"> 选择器{ 属性:值; 属性1:

  • 今天在做一个小练习的时候,真的是踩了很多坑,还好最后还是爬出来了,现在分享出来,希望帮到遇到和我一样问题的你,也是避免自己再次踩坑里 报错内容: Warning: A component is changing a controlled input of type text to be uncontrolled. Input elements should not switch from con

  •   元素对象 了解 select 对象 了解 属性: options : 获取下拉选框中所有选项 (option数组) selectedIndex: 当前被选中的选项下标 函数: add(option) : 追加一个选项 remove(index): 删除指定索引的选项 事件: onchange : 当选项被改变时, 触发 ! optio

  • 1.search()查找 用来检索字符串是否用和传入的参数相匹配的值,如果有则返回索引,没有则返回-1 字符串.search(“查找的值”); 2.slice(开始,结束)截取 字符串.slice(开始,结束) 3.截取substring(开始,结束) 同2值包含开始不包含结束 快淘汰的一种算法,subtr()包含开头和结尾 4.charAt()查找 传下标,找值 5.split(“分隔符”) 分

  • JS3

    1、案例一:在末尾添加节点 第一步:获取到ul标签 第二步;创建li标签 document.createElement("标签名称")方法 第三步:创建文本 document.createTextNode("文本内容"); 第四步:把文本添加到li下面 使用appendChild方法 第五步:把li添加到ul末

  • function q (min,max) { return max.floor(max.radom()*(max-min+1)+min) } var a = prompt('请输入一个数字'); for(var i = 0;;i++){ if ( a > q(1,10) ){ alert('数字大了'); }

  • 1、外部对象(由BOM和DOM提供的) 1、BOM 和 DOM BOM:Browser Object Model 浏览器对象模型 将浏览器比喻成一个对象 window(网页初始化时自动创建的) 可以通过window对象操控浏览器中的内容 DOM:Document Object Model 文档对象模型 将HTML文档比喻成一个对

  • var str='asdjdfskjksjdkkf'; var json={} for(var i=0;i<str.length;i++){ if(!json[str.charAt(i)]){ json[str.charAt(i)]=1 }else

  • Undefined类型 对于没有定义的变量和为初始化的变量都会返回这个值。 Null类型【一个对象的空指针】 typeof  null  返回的是object   Number 浮点型的一个特点  并且四舍五入的时候可能出现问题 var a = 0.1;  -----可以 var a =.1; 也是可以 但是不推荐 有存储范围 Number.MAX_VALUE  Number.MIN_VALUE

  • 一个表达式可以产生一个值,有可能是运算、函数调用、有可能是字面量。表达式可以放在任何需要值的地方。 语句 语句可以理解为一个行为,循环语句和判断语句就是典型的语句。一个程序有很多个语句组成,一般情况下;分割一个一个的语句 流程控制 程序的三种基本结构 顺序结构 从上到下执行的代码就是顺序结构 程序默认就是由上到下顺序执行的 分支结构 根据不同的情况,执行对应代码 循环结构 循环结构:重复做一件事情

 相关资料
  • 1. 定义 慕课解释:一把锁对应一扇门,获得锁的可以进门,否则只能在门外等待。 2. 前言 本小节,我们将一起学习 SQL 中的锁。 在一些并发场景中,会涉及到一些数据竞争问题。如 A、B 二人同时要修改同一条记录,如果二人可以对其同时修改,那么很大的概率上,数据会起冲突,为了保证数据的安全性和正确性,SQL 引入了锁。 本小节测试数据如下,请先在数据库中执行: DROP TABLE IF EXI

  • 原文: http://exploringjs.com/impatient-js/ch_weaksets.html WeakSets 与 Sets 类似,但有以下区别: 它们可以保存对象,而不会阻止这些对象被垃圾收集。 它们是黑盒子:如果你同时拥有 WeakSet 和一个值,你只能从 WeakSet 中获取任何数据。支持的唯一方法是.add(),.delete(),.has()。有关为什么 Weak

  • 33号铺是使用codeigniter和淘宝API制作的淘宝客瀑布流系统 33号铺的设计理念是,做一个体验最好的导购系统。 相信PGC(Professional Generated Content),而不是蘑菇街那样的UGC。但不排除加入投票系统。 相信人工的推荐,而不是机器采集。机器采集的垃圾站我见过很多,大部分是根据taobao API批量拉取数据,这个功能很好做,但是我不希望做自动采集的站点,

  • 今天在运行我的应用程序时,我在logcat上看到这样一条消息:“跳过了33帧。应用程序可能在其主线程中做了太多的工作。”。第二部分与我无关,因为当显示此消息时,我的应用程序确实在运行。但同时它说“跳过了33帧”。。这是否意味着屏幕视图会像视频一样逐帧显示。!!!

  • 我使用的是Firefox版本33.1.1和SeleniumWebDriver 2.44。Selenium WebDriver是使用安装包Selenium通过Nuget安装的。网络驱动程序。以前,我在运行测试时没有遇到任何问题。我开始在所有测试中出现以下错误: 通过不同版本的Firefox和Selenium WebDriver查看此错误的其他来源,即未能在45000内启动socket,它们似乎都集中

  •  Nobody really knows what the Bourne shell's grammar is. Evenexamination of the source code is little help. Tom Duff 另一个办法是脚本可以测试是否在变量$-中出现了选项"i". 1 case $- in 2 *i*) # 交互式 shell 3 ;; 4