Loading

随笔分类 -  JAVASCRIPT

摘要:什么是函数柯里化,有什么作用 在数学和计算机科学中,柯里化是一种将使用多个参数的一个函数转换成一系列使用一个参数的函数的技术。 主要作用 参数复用 提前返回 – 返回接受余下的参数且返回结果的新函数 延迟执行 – 返回新函数,等待执行。 function add(a, b) { return a + 阅读全文
posted @ 2021-01-26 20:11 不吃苦瓜^ 阅读(278) 评论(0) 推荐(0)
摘要:// gen 为generator 实现Async的主要思路 Async返回的是一个promise对象 使用一个step对generator进行遍历 使用一个Promise.resolve()来拿到每个yield的返回值,并且在下一次调用时传入,循环以往直到结束 有错误使用throw方法抛出,在ge 阅读全文
posted @ 2021-01-24 17:57 不吃苦瓜^ 阅读(175) 评论(0) 推荐(1)
摘要:简述 首先我们知道generator的内部实现采用了一种类似于协程的方法,即在在函数执行的过程之中遇到yield关键字时,就会暂时退出堆栈,但是并不消失,里面的所有变量和对象会冻结在当前状态。等到对它执行next命令时,这个上下文环境又会重新加入调用栈,冻结的变量和对象恢复执行。 同步任务 对于同步 阅读全文
posted @ 2021-01-24 16:28 不吃苦瓜^ 阅读(217) 评论(0) 推荐(0)
摘要:什么是闭包? 闭包就是能够读取其他函数内部变量的函数。例如在javascript中,只有函数内部的子函数才能读取局部变量,所以闭包可以理解成“定义在一个函数内部的函数“。在本质上,闭包是将函数内部和函数外部连接起来的桥梁 function sum (){ let i = 0 return funct 阅读全文
posted @ 2021-01-23 16:01 不吃苦瓜^ 阅读(86) 评论(0) 推荐(0)
摘要:几种常见for循环的区别与不足之处 (for,for of,for in ,foreach) 区别通过作用体现 foreach 作用:用于调用数组的每个元素,并将元素传递给回调函数,回调函数的三个分别是value,index,arr(数组本身) 不足: 不能同时遍历多个集合,在遍历的时候无法修改和删 阅读全文
posted @ 2021-01-20 22:46 不吃苦瓜^ 阅读(88) 评论(0) 推荐(0)
摘要:继承的含义 父类公有属性和方法为子类公有属性和方法 父类私有属性和方法为子类私有属性和方法 原型链继承 + 构造函数继承 = 组合继承 构造函数继承继承不到父类原型上的属性和方法 原型链继承父类的修改会影响子类的实例 结合二者 function Father(name) { this.name = 阅读全文
posted @ 2021-01-20 22:21 不吃苦瓜^ 阅读(156) 评论(0) 推荐(0)
摘要:function deepClone(target) { if(typeof target !== "object") return target // 退出条件 if(Array.isArray(target)){ // 判断数组 const res = [] for(const i of tar 阅读全文
posted @ 2021-01-20 21:53 不吃苦瓜^ 阅读(71) 评论(0) 推荐(0)
摘要:function PromiseAllSettled(promises) { const result = [] let len = promises.length let count = 0 return new Promise((resolve, reject) => { promises.fo 阅读全文
posted @ 2021-01-20 21:24 不吃苦瓜^ 阅读(402) 评论(0) 推荐(0)
摘要:什么是generator Generator 函数有多种理解角度。语法上,首先可以把它理解成,Generator 函数是一个状态机,封装了多个内部状态。 执行 Generator 函数会返回一个遍历器对象,也就是说,Generator 函数除了状态机,还是一个遍历器对象生成函数。返回的遍历器对象,可 阅读全文
posted @ 2021-01-20 16:25 不吃苦瓜^ 阅读(102) 评论(0) 推荐(0)
摘要:Iterator 的作用有三个: 是为各种数据结构,提供一个统一的、简便的访问接 是使得数据结构的成员能够按某种次序排列 是 ES6 创造了一种新的遍历命令for...of循环,Iterator 接口主要供for...of消费 部署方式 原生就具有iterator的数据结构 Array Map Se 阅读全文
posted @ 2021-01-20 10:37 不吃苦瓜^ 阅读(66) 评论(0) 推荐(0)
摘要:参数默认值 ES6 允许为函数的参数设置默认值,即直接写在参数定义的后面。 function log(x, y = 'World') { console.log(x, y); } log('Hello') // Hello World log('Hello', 'China') // Hello C 阅读全文
posted @ 2021-01-19 11:11 不吃苦瓜^ 阅读(90) 评论(0) 推荐(0)
摘要:变量声明 var声明的变量会进行变量提升,全局作用于下会被挂载到window上 let/const 不会进行变量提升提升,存在暂时性死区,不能在声明前被使用 const在被声明的时候必须赋初值,const代表变量指向的那个内存地址所保存的数据不得改动,如果声明一个对象,是可以改变对象的属性的 let 阅读全文
posted @ 2021-01-18 21:34 不吃苦瓜^ 阅读(81) 评论(0) 推荐(0)
摘要:prototype 每一个函数都有一个prototype属性 函数的prototype指向了一个对象,而这个对象正是调用构造函数时创建的实例的原型 function Person(age) { this.age = age } Person.prototype.name = 'duck' var p 阅读全文
posted @ 2021-01-17 20:07 不吃苦瓜^ 阅读(147) 评论(0) 推荐(0)
摘要:异步任务指的是,不进入主线程、而进入"任务队列"(task queue)的任务,只有等主线程任务执行完毕,"任务队列"开始通知主线程,请求执行任务,该任务才会进入主线程执行。 分为了以下两种 宏任务 宏任务就是将当前任务放在下一个任务列最顶部 微任务 微任务会将当前任务放入下一个任务列的底部 主要的 阅读全文
posted @ 2021-01-17 17:56 不吃苦瓜^ 阅读(2718) 评论(0) 推荐(0)
摘要:1.防抖与节流 https://www.cnblogs.com/dark-duck/p/14289048.html 2.instanceof实现 https://www.cnblogs.com/dark-duck/p/14289231.html 3.js理论 https://www.cnblogs. 阅读全文
posted @ 2021-01-17 17:33 不吃苦瓜^ 阅读(88) 评论(0) 推荐(0)
摘要:输入为数字,输出为字符串 使用“,”分割整数部分,小数保留两位 function transfer(str){ let res = str.toFixed(2).toString().split('.') return res[0].split("").reverse().reduce((prev, 阅读全文
posted @ 2021-01-17 17:30 不吃苦瓜^ 阅读(319) 评论(0) 推荐(0)
摘要:js的异步机制是怎样的? 特点 js是单线程语言(能提高效率。作为浏览器脚本语言,js的主要用途是与用户互动,操作DOM。而这也就决定它只能为单线程,否则会带来很复杂的同步问题),浏览器只分配给js一个主线程,用来执行任务(函数),但一次只能执行一个任务,这些任务形成一个任务队列排队等候执行,但前端 阅读全文
posted @ 2021-01-17 16:52 不吃苦瓜^ 阅读(86) 评论(0) 推荐(0)
摘要:typeof typeof用法 对于原始值类型除了null(会显示成object,历史遗留问题)外都可以准确判断 对于对象来说,除了函数都会显示 object instanceof instanceof用法 instanceof 是用来判断 A 是否为 B 的实例,表达式为:A instanceof 阅读全文
posted @ 2021-01-17 16:02 不吃苦瓜^ 阅读(282) 评论(0) 推荐(0)
摘要:防抖 函数防抖(debounce),触发高频事件后 n 秒内函数只会执行一次,如果 n 秒内高频事件再次被触发,则重新计算时间。计时完成再执行 例如:百度搜索框的联想功能 代码实现 // 简单的例子 function debounce(fn,wait){ let timer = null; retu 阅读全文
posted @ 2021-01-17 15:12 不吃苦瓜^ 阅读(72) 评论(0) 推荐(0)
摘要:首先,要明确一点 POST和GET是HTTP请求的两种方式,都可实现将数据从浏览器向服务器发送带参数的请求。但是由于HTTP的规定和浏览器/服务器的限制,导致他们在应用过程中体现出一些不同。 HTTP请求底层协议都是TCP/IP,所以两者没有本质的区别。 POST和GET的区别 HTTP中的幂等和副 阅读全文
posted @ 2021-01-17 11:07 不吃苦瓜^ 阅读(82) 评论(0) 推荐(0)