正则表达式
一直都只会写简单的正则,平时也基本不写,就连 test,exec,match 是谁的方法都分不清。笔记主要参考《javascript 正则表达式迷
一直都只会写简单的正则,平时也基本不写,就连 test,exec,match 是谁的方法都分不清。笔记主要参考《javascript 正则表达式迷
AMD Asynchronous Module Definition,意思是异步模块定义。 用法: 1 2 3 4 // 定义模块 define(id?, dependencies?, factory) // 引用模块 require([module], callback) 对于依赖的模块 AMD 是提前执行,代表是 RequireJS 例子: 1 2 3
NodeList NodeList 是一个节点的集合,是由 Node.childNodes 和 document.querySelectorAll 返回的。 动态 NodeList:如果文档树中的节点树发生变化,则已存在的实时 NodeList 对象也会随之变化
实现 以下是实现和一些关键注释 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
Tasks, microtasks, queues and schedules 用一句话概括,就是一个 macrotask 中出现的 mircotask 都在这一次 eventloop 中执行,出现的 macrotask 需要在新的 eventloop 执行 macrotask(task) setTimeout = setInterval setImmediate requestAnimationFrame I/O UI rendering microtask process.nextTick promise callback 例子: 1 2 3 4 5 6 7 8 9 10
作用域,闭包 es6 之前,js 只有全局作用域和函数作用域 1 2 3 4 5 6 7 8 9 10 11 console.log(foo); function func() { var bar = 1; return function() { console.log(bar++); }; } var foo = 123; var func2 = func(); func2(); //1 func2(); //2 这段代码有两个阶