js
Jack おう
后端转前端的码农小王---深圳
展开
-
js 复制
<p @click="copyHandler(colorName)">function copyHandler(name: string) { const input = document.createElement('input') document.body.appendChild(input) input.setAttribute('value', name) input.select() if (document.execCommand('copy')) {...原创 2021-10-12 10:52:38 · 111 阅读 · 0 评论 -
JS系列-继承
JS如何实现继承第一种使用call。但是这种方法会存在函数不能使用问题,引出下面方法。第二种使用原型链这种方法是利用原型链,那么会存在共享问题,既然都共享一个原型那么修改其中的数组那么其他实例也会跟着变 var s1 = new Child2(); var s2 = new Child2(); s1.play.push(4); console.log(s1.play, s2.play); // (4) [1, 2, 3, 4] (4) [1, 2, 3, 4]其中父类也跟着原创 2021-03-09 15:59:44 · 87 阅读 · 0 评论 -
节流防抖
/** fn [function] 需要防抖的函数* delay [number] 毫秒,防抖期限值*/function debounce(fn,delay){ let timer = null //借助闭包 return function() { if(timer){ clearTimeout(timer) //进入该分支语句,说明当前正在一个计时过程中,并且又触发了相同事件。所以要取消当前的计时,重新开始计时 tim原创 2021-03-02 15:56:06 · 95 阅读 · 0 评论 -
什么是eventLoop 什么是事件循环 事件轮询
hi 》 bey 》 cb1eventLoop执行过程第一行代码第二行代码把setTimeout压栈,放入WebApis,setTimeout是WebApis(浏览器定义的),把定时器放入WebApis后过5秒后放入CallBackQueue里面。执行完第二行代码后,setTimeout 弹栈dom操作或setTimeout之类都属于WebApis第三行代码压栈打印弹栈此时全部代码执行完了,调用栈空了,等待定时器到时间。此时全部同步代码执行完了 》 启动EventLoo...原创 2021-02-09 01:12:15 · 516 阅读 · 0 评论 -
async-await使用以及分析
32原创 2021-02-08 22:59:20 · 82 阅读 · 0 评论 -
vue proxy 跨域原理
用法网上很多赘述了原理浏览器会因为同源策略跨域,但服务端不禁止,npm run dev 本来就是运行了服务器,所有利用服务器发送请求即可(将所有请求转发到自己的node服务器然后发送请求 即 代理)...原创 2021-01-13 10:09:12 · 1577 阅读 · 0 评论 -
js数组对象去重
1.利用对象属性去重2.利用map去重 其实这俩种都差不多利用key会覆盖的特性原创 2021-01-12 17:27:31 · 140 阅读 · 0 评论 -
JS 大于等于今天校验
let curDate = new Date(); //获取昨天(不需要等于今天的话注释掉就好了) curDate = curDate.setDate(curDate.getDate() - 1) // 以下都是时间戳对比 if(new Date('2020-01-04'.replace(/-/g,"/")) < curDate){ return ('请选择大于或等于今天的时间!') }...原创 2021-01-04 16:05:04 · 725 阅读 · 0 评论 -
JSON.stringify和JSON.parse 优缺点 实现深拷贝的优缺点
优点方便,将字符串parse后创建新对象(新地址)let temp = JSON.parse(JSON.stringify(OBJ))缺点1.如果这个对象里属性是functionlet obj = { fun: function name(params) { }}console.log(obj);// { fun: [Function: name] }let temp = JSON.parse(JSON.stringify(obj))console.log(temp);原创 2021-01-04 11:32:49 · 4048 阅读 · 0 评论 -
关闭eslint 如何关闭eslint vue 关闭eslint
创建vue.config.js(有这个文件就直接添加属性 lintOnSave: false)module.exports = { lintOnSave: false}保存重启,烦人的提示就消失了原创 2020-12-16 21:44:29 · 361 阅读 · 0 评论 -
js vue 动态拼接变量名 js动态变量名 循环拼接变量名
let obj = {}for (let index = 0; index < 3; index++) { obj['name'+index] = index }console.log(obj);// { name0: 0, name1: 1, name2: 2 }原创 2020-12-15 12:15:33 · 4938 阅读 · 0 评论 -
不使用if 动态命名
通过updata方法减少if判断的冗余(1方法名动态命名,然后返回该方法2判断是否有值有才执行,执行后更新值)原创 2020-12-12 11:58:54 · 66 阅读 · 0 评论 -
JS 函数式编程
为什么要学习函数编程以及什么是函数式编程函数式编程的特性(纯函数、柯里化、函数组合等)函数式编程的应用场景函数式编程库 Lodash为什么要学习函数式编程(FB)函数式编程是非常古老的一个概念,早于第一台计算机的诞生,函数式编程的历史。那我们为什么现在还要学函数式编程?函数式编程是随着 React 的流行受到越来越多的关注(例如react的函数组件,redux也是基于函数式编程的思想,想要学好react那么久必须学好FP)。Vue 3也开始拥抱函数式编程。函数式编程可以抛弃 this。打原创 2020-11-12 16:43:18 · 948 阅读 · 0 评论 -
JavaScript 异步编程
JS单线程的原因如果多线程同时操作了dom,浏览器并不知道以谁为准。优点:安全。缺点:如果有耗时任务,会出现假死现象。所以为了解决以上问题,JS有俩种模式同步模式代码依次执行。函数的声明不会入CallStack,调用的方法会进入CallStack,执行完成后弹出。可以想象成CallStack就是JS的任务执行表。如果同步模式遇到耗时操作,可能会卡死,这个时候就需要进行异步解决。异步模式开启异步任务后,继续执行同步代码,后续逻辑用回调函数处理。Timeout开启定时器,进入WebA原创 2020-11-14 14:28:41 · 235 阅读 · 0 评论 -
async await 面试题
async function t1() { let a = await "lagou"; console.log(a);}t1();console.log('a')先打印A 后执行微任务里的 let a = await “lagou”;console.log(a);原理其实就是Generator问题1解析await是一个表达式,如果后面不是一个 promise 对象,会先把表达式转换成promisefunction * t1 () { let a = yield "lagou原创 2020-11-14 15:32:19 · 2391 阅读 · 1 评论 -
从简到难手把手教你写Promise源码 手写 Promise源码
先写个简易版的const PENDING = 'pengding'const FULFILLED = 'fulfilled'const REJECTED = 'rejected'class MyPromise { constructor(excecutor){ excecutor(this.resolve,this.rejected) } status = PENDING // 成功之后的值 value = undefined; /原创 2020-11-15 21:47:58 · 294 阅读 · 0 评论 -
JavaScript 性能优化2
JSBench 使用https://jsbench.me/堆栈中的 JS 执行过程普通值存放栈内存,引用类型堆内存GC负责回收减少判断层级在我们编写的过程中,有可能会出现判断条件嵌套的场景,而往往这种场景都可以提前 return 掉那些无效的条件来达到嵌套层级的优化效果。// 嵌套 IFfunction doSomething(part, chapter) { const parts = ['ES2015','ES2016','工程化','Vue','React', 'Node']原创 2020-11-23 00:22:56 · 224 阅读 · 0 评论 -
JS 性能优化
概述性能优化时不可避免的哪些内容可以看做是性能优化?任何一种可以提升程序运行效率,降低程序开销的行为,我们都可以看做是一种优化操作。这就意味着在软件开发的过程中,必然存在着很多值得优化的地方。无处不在的前端性能优化特别是在前端开发过程中,性能优化时无处不在的,例如请求资源时的网络、数据的传输方式,开发过程中所使用的的框架等。本篇的核心是JavaScript语言的优化,具体来说就是认知内存空间的使用,垃圾回收的方式介绍。从而可以让我们编写出高效的JavaScript代码。内存管理内存管理介绍原创 2020-11-22 18:39:37 · 880 阅读 · 0 评论 -
JS ES6学习总结 拉钩模块二
目前大多数人还没搞明白语言和平台之间的关系。ECMAScript 概述ES是JS的扩展语言,也可以说ES就是JS。ES2015 概述ES2015 let 与块级作用域ES5前只有俩种作用域,全局和函数作用域,ES5后多了块级作用域。但使用let就不能获取到了。1不能let重复声明if (true) { var foo = 'zce' var foo = 'zce' console.log(foo)}// OKif (true) { var foo = 'zc原创 2020-11-21 16:34:50 · 378 阅读 · 1 评论 -
JS Event Loops 微任务 宏任务
EventLoop、宏任务、微任务console.log(1)setTimeout(function () { 进入宏任务队列 console.log(2)}, 0)console.log(3)console.log('global begin') 1setTimeout(function timer1 () { queueMicrotask(() => { 把函数内的东西放入微任务队列 console.log('queueMicrotask') 2 })原创 2020-11-14 15:11:18 · 244 阅读 · 0 评论