const pending = 'pending' const fulfilled = 'fulfilled' const rejected = 'rejected' class MyPromise { #state = pending #result = undefined #handler =
ES5 严格模式 1、不允许使用with(){} 和arguments.callee() 2、变量必须声明并赋值 3、函数预编译this不是指向window 4、变量不允许重名
function getScrollSize(){ if(window.pageXOffset){ return { x:window.pageXOffset, y:window.pageYOffset } }else{ return { x:document.body.offsetLeft+doc
function debounce(fn, delay) { let timer; let tht = this; return function (...args) { clearTimeout(timer) console.log(...args) timer = setTimeout(() =
class SuperTask { constructor(parallelCount = 2) { this.parallelCount = parallelCount; this.tasks = []; this.runningCount = 0; } add(task) { return ne
function batchRequest(urls,maxNum){ return new Promise(resolve=>{ if(urls.length 0){ resolve([]); return; } const results=[]; let index=0; let finishC
箭头函数特点: 1、不可以new 2、 没有原型prototype 3、没有arguments 4、 没有this
1、一切未声明定义的变量(没有var)是全局变量属于window全局域 2、全局声明定义的变量是全局变量属于window全局域 function test() { var a = b = 123 } test() //console.log(a)//报错 a is not defined conso
类数组:属性为索引(数字字符串)属性,必须有length属性,最好加上push var obj = { '1': 'aa', '2': 22, 'length': 2, 'push': Array.prototype.push } // Array.prototype.push = function
//圣杯模式 改变子属性不会影响父对应的属性 // function inherit(Target, Origin) { // function F() { } // F.prototype = Origin.prototype // Target.prototype = new F() // Ta
function isPrimitive(obj) { return obj null || !['object', 'function'].includes(typeof obj) } function objEqual(obj1, obj2) { //console.log(isPrimitiv
function deepClone(obj) { if (typeof obj !== 'object' || obj null) { return obj } const result = Array.isArray(obj) ? [] : {} Object.setPrototypeOf(re
function arrany(name) { let tasks = [] tasks.push(() => { console.log(name) }) function wait(duration) { tasks.push(() => new Promise(resolve => { set
class User { constructor(name, age) { this.name = name this.age = age } static print(age) { console.log(this.name + ' ' + age) } sayHello() { console.
function _runtask(task,callback){ const startTime=Date.now() requestAnimationFrame(()=>{ if(Date.now()-startTime<16.6){ task() callback() }else{ _runt
class SuperTask { constructor(parallelCount = 2) { this.parallelCount = parallelCount this.tasks = [] this.ruuingCount = 1 } add(task1) { return new P
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号