摘要:
一般来说有两种处理方式 ①抛出异常 function openFile(fileName) { if (!exists(fileName)) { throw new Error('找不到文件 ' + fileName) } // ... } ②捕获异常 try { openFile('../test 阅读全文
posted @ 2023-03-04 22:24
不想做混子的奋斗远
阅读(79)
评论(0)
推荐(0)
摘要:
JavaScript提供的正则表达式API、可以使用正则表达式解决常见问题(邮箱校验、URL解析、去重等) js正则常用API 1.五个常用方法 ①test reg.test(str); // 返回是否包含正则 true/false var str = "abcdefghijkl3mnop2qts" 阅读全文
posted @ 2023-03-04 22:19
不想做混子的奋斗远
阅读(55)
评论(0)
推荐(0)
摘要:
setInterval需要注意的点,使用settimeout实现setInterval setTimeout传入的是两个参数,第一个参数是cb代表的是回调函数callback,第二个代表的是时间,以ms计算 setInterval传入的也是两个参数,第一个参数是cb代表的是回调函数callback, 阅读全文
posted @ 2023-03-04 22:06
不想做混子的奋斗远
阅读(94)
评论(0)
推荐(0)
摘要:
熟练掌握JavaScript提供的全局对象(例如Date、Math)全局函数(例如decodeURI、isNaN)全局属性(例如Infinity、undefined) 阅读全文
posted @ 2023-03-04 21:33
不想做混子的奋斗远
阅读(28)
评论(0)
推荐(0)
摘要:
ECMAScript(核心) DOM(文档对象模型) BOM(浏览器对象模型) ES5增加特性 1.strict模式 use strict 2.Array增加方法 every、forEach、filter、indexOf、lastIndexOf、isArray、map、reduce reduceRi 阅读全文
posted @ 2023-03-04 21:31
不想做混子的奋斗远
阅读(36)
评论(0)
推荐(0)
摘要:
阅读全文
posted @ 2023-03-04 20:51
不想做混子的奋斗远
阅读(21)
评论(0)
推荐(0)
摘要:
一般有两种做法 1.时间分片 setTimeout是宏任务,先执行完所有的微任务,才会触发渲染线程对页面进行渲染, 而setTimeout的触发时间是渲染完成,在下一次eventloop中执行的。 根据以上两次log,js运算并不是性能的瓶颈,瓶颈主要在渲染阶段。 怎么办呢? 使用定时器,在这里,我 阅读全文
posted @ 2023-03-04 20:49
不想做混子的奋斗远
阅读(56)
评论(0)
推荐(0)
摘要:
任务队列个数不同 浏览器事件环有2个事件队列 宏任务队列 微任务队列 NodeJS事件环有6个事件队列 定时器(timers):本阶段执行已经被 setTimeout() 和 setInterval() 的回调函数 待定回调(pending callbacks):执行延迟到下一个循环迭代的 I/O 阅读全文
posted @ 2023-03-04 20:30
不想做混子的奋斗远
阅读(34)
评论(0)
推荐(0)
摘要:
实现promise的核心思想是借助reduce 第一步 const res = [] //定义一个接受不同promise执行结果的数组 第二步 返回一个promise对象 return new Promise((resolve,reject) => { }) 第三步 通过reduce讲不同的prom 阅读全文
posted @ 2023-03-04 20:14
不想做混子的奋斗远
阅读(198)
评论(0)
推荐(0)
摘要:
1.什么是promise Promise是异步编程的一种解决方案:从语法上来讲,promise是一个对象,从他可以获取异步操作的消息;从本意上来讲。他是一个承诺,承诺他过一段时间会给你一个结果。 他有三种状态:pending(等待态)、fulfiled(成功态)、rejected(失败态);状态一旦 阅读全文
posted @ 2023-03-04 20:04
不想做混子的奋斗远
阅读(13)
评论(0)
推荐(0)
摘要:
js宏任务有:<script>整体代码、setTimeout、setInterval、setImmediate、Ajax、DOM事件 js微任务有:process.nextTick、MutationObserver、Promise.then catch finally 执行顺序 执行顺序:先执行同步 阅读全文
posted @ 2023-03-04 18:08
不想做混子的奋斗远
阅读(90)
评论(0)
推荐(0)
摘要:
单线程和异步 js的任务分为同步和异步两种,它们的处理方式也不同, 同步任务是直接在主线程上排队执行,异步任务则会被放在任务队列中, 若有多个任务(异步任务)则要在任务队列中排队等待,任务队列类似一个缓冲区,任务下一步会被移到调用栈(callstack),然后主线程执行调用栈的任务。 JavaScr 阅读全文
posted @ 2023-03-04 17:56
不想做混子的奋斗远
阅读(46)
评论(0)
推荐(1)
摘要:
涉及到了一种数据类型:Completion,是js七大标准类型之一 为何try里面放return,finally还会执行 这种行为就是因为Completion Record,在js中,每条语句的执行完成状态都是由Completion Record类型表示的。他有三个字段: [[type]]:表示完成 阅读全文
posted @ 2023-03-04 17:11
不想做混子的奋斗远
阅读(173)
评论(0)
推荐(1)
摘要:
1.什么是模块 将一个复杂的程序依据一定的规则(规范)封装成几个块(文件), 并进行组合在一起 块的内部数据与实现是私有的, 只是向外部暴露一些接口(方法)与外部其它模块通信 2.为什么使用模块及模块化 以module.exports(暴露)和require(引入 )来说(1):达到代码重用性,避免 阅读全文
posted @ 2023-03-04 16:57
不想做混子的奋斗远
阅读(145)
评论(0)
推荐(0)
摘要:
function getMoney(){ var money=[100,200,300] for( let i=0; i<money.length; i++){ compute.exec().then(()=>{ console.log(money[i]) //alert(i) }) } }//co 阅读全文
posted @ 2023-03-04 16:03
不想做混子的奋斗远
阅读(30)
评论(0)
推荐(0)
摘要:
内存泄漏 申请的内存执行完之后没有及时的清理和销毁,占用空闲内存,既不能使用也不能回收。 几种会导致内存泄露的情况: 意外的全局变量 被以往的计时器或回调函数 脱离DOM的引用(分离的DOM节点) 解决办法 <div id="root"> <div class="child">我是子元素</div> 阅读全文
posted @ 2023-03-04 16:00
不想做混子的奋斗远
阅读(81)
评论(0)
推荐(0)
摘要:
1.闭包的实现原理和作用 闭包:指有权访问另一个函数作用域中的变量的函数,一般都是一个函数包含另一个函数。 2.闭包的作用: 访问函数内部变量、保持函数在环境中一直存在,不会被垃圾回收机制处理。 因为函数内部声明 的变量是局部的,只能在函数内部访问到,但是函数外部的变量是对函数内部可见的,这就是作用 阅读全文
posted @ 2023-03-04 15:14
不想做混子的奋斗远
阅读(65)
评论(0)
推荐(0)
摘要:
1.this原理 this是JavaScript的一个关键字,函数调用时才会出现;因为函数是在一定的环境中运行的,调用函数时肯定需要知道是[谁调用的]?就用到了this进行指向;那么this到底指向的是什么?this 既不指向函数自身,也不指函数的词法作用域,而是调用函数时的对象 2.使用场景 1. 阅读全文
posted @ 2023-03-04 15:00
不想做混子的奋斗远
阅读(92)
评论(0)
推荐(0)
摘要:
1.执行上下文 执行上下文就是当前 JavaScript 代码被解析和执行时所在环境的抽象概念, JavaScript 中运行任何的代码都是在执行上下文中运行 1.执行上下文的类型 全局执行上下文:她做了两件事:①创建了一个全局对象,在浏览器中就是window对象②将this指针指向这个全局对象。一 阅读全文
posted @ 2023-03-04 12:03
不想做混子的奋斗远
阅读(23)
评论(1)
推荐(1)
摘要:
什么是作用域 Javascript中的作用域说的是变量的可访问性和可见性。也就是说整个程序中哪些部分可以访问这个变量,或者说这个变量都在哪些地方可见。 作用域的类型 全局作用域 函数作用域 块级作用域 1.全局作用域 任何不在函数中或是大括号中声明的变量,都是在全局作用域下,全局作用域下声明的变量可 阅读全文
posted @ 2023-03-04 11:42
不想做混子的奋斗远
阅读(15)
评论(0)
推荐(0)
摘要:
作用域?什么是作用域? 作用域就是指程序源代码中定义变量的区域 作用域规定了如何查找变量,也就是确定当前执行代码对变量的访问权限。js采用词法作用域,也就是静态作用域。 动态作用域? 因为js采用的静态作用域,函数的作用域在函数定义的时候就决定了。 而动态作用域,是在函数调用的时候才决定的。 阅读全文
posted @ 2023-03-04 11:33
不想做混子的奋斗远
阅读(18)
评论(0)
推荐(0)
摘要:
javascript使用的是原型式继承,我们可以通过原型的特性实现类的继承,es6为我们提供了像面向对象继承一样的语法糖。 1.类的实现 class底层仍然是构造函数 调用_classCallCheck方法判断当前函数调用前是否有new关键字 将class内部的变量和函数赋给this 执行构造器内部 阅读全文
posted @ 2023-03-04 11:29
不想做混子的奋斗远
阅读(38)
评论(0)
推荐(0)
摘要:
1.new关键字的执行过程 1、创建一个空对象 2、改变this指向 3、向其中添加属性 4、返回这个对象 2.手动模拟new的实现 new关键字的执行过程 如果一个类返回值是一个引用类型那么就返回这个引用类型值 function mockNew(fn){ let obj = {} let newV 阅读全文
posted @ 2023-03-04 11:21
不想做混子的奋斗远
阅读(22)
评论(0)
推荐(0)
摘要:
这个不知道 阅读全文
posted @ 2023-03-04 11:17
不想做混子的奋斗远
阅读(29)
评论(0)
推荐(0)
摘要:
7.实现继承的几种方式以及他们的优缺点 ①类式继承(构造函数) var father = function() { this.age = 52; this.say = function() { alert('hello i am '+ this.name ' and i am '+this.age 阅读全文
posted @ 2023-03-04 11:14
不想做混子的奋斗远
阅读(241)
评论(0)
推荐(0)

浙公网安备 33010602011771号