自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 react hook useState连续更新对象问题

react useState连续更新2次带来的问题

2022-02-19 18:29:28 2437

原创 js 往对象中增加变量时,相同变量采用后边加递增数字的算法

/** * @description: 往对象中增加字段,如果对象中存在同名对象,则将字段加递增数字后加入对象中 * @param {Object} object 需要增加字段的对象 * @param {string} field 需要增加的字段名 * @return {object} 增加字段后的对象 */function addFieldObject(object, field:string) { // 没有重名的直接往对象中增加字段 if(!object[field]) {.

2021-09-16 17:05:02 657

原创 大数相加算法

function add(num1, num2) { const maxLen = Math.max(num1.length, num2.length); // 将两个大数的长度处理成一致方便后续计算 num1 = num1.padStart(maxLen, '0') num2 = num2.padStart(maxLen, '0') let sum = “” // 总数 let bit = 0 // 进位 let singSum = 0 //.

2021-05-18 20:42:52 59

原创 js 利用CryptoJS AES加密解密

1.npm installcrypto-js加密: // AES加密const key = CryptoJS.enc.Utf8.parse('reHlsdCrUOMeBIYiVtWEhJ3Q==') // 将密钥转Utf8const val = ‘123456’const srcs = CryptoJS.enc.Utf8.parse(JSON.stringify(val)) // 将val对转成Utf8 // 跟后端用同样的模式对密码进行AES加密const encrypte.

2021-01-19 22:07:49 424

原创 前端进行SHA256withRSA加密及其解密

利用SHA256withRSA进行加密1.npm installjsrsasign2.加密let rsa = new jsrsasign.RSAKey() // new一个RSA对象 const k = `-----BEGIN PRIVATE KEY----- 私钥内容 -----END PRIVATE KEY-----` // SHA256withRSA私钥 rsa = jsrsasign.KEYUTIL.getKey(k) // 将私钥 转成16进.

2021-01-18 23:37:29 6542 3

原创 eventLoop 事件循环

js是单线程脚本语言,开发中了解代码执行顺序就显得格外重要。js从上往下执行过程中,遇到同步任务会直接执行,但如果所有都是同步任务,会造成严重的问题。比如说向服务器请求数据,就没必要等到接口返回后才执行后续操作。因此,就有了异步的概念。异步又分为宏异步和微异步正常情况下js从上往下执行,遇到script标签后...

2020-07-03 14:55:48 93

原创 TypeScript语法解析

利用typescript语法树 修改源码

2022-12-15 00:05:52 468

原创 call和apply的原理,并实现简易版本

1.call和apply的原理都一样,只是接受参数形式不一样,下面实现了一个简易版本的call方法// 实现时用callDemo来表示js原生中的callFunction.property.callDemo = function(context){ // 如果传入了context,调用object来做一次转换,如果没传context则context指向window context = context?Object(context): Window; // 获取除了cont

2021-12-19 18:30:32 141

原创 手动实现一个instanceof

instanceof的底层实现原理,手动实现一个instanceof

2021-06-04 22:24:53 201

原创 vue中watch和computed的选择

vue中watch性能问题

2021-05-23 21:47:15 98

原创 jsonp原理并用promise实现JSONP

function jsonP(url, data) { return new Promise((reslove, reject) => { const dataString = url.indexOf('?') === -1 ? '?' : '&'; const callBack = `CB${new Date().getTime()}`; url += `${dataString}callBack=${callBack}`; if (.

2021-05-11 20:33:18 242

原创 强缓存和协商缓存

304状态码

2020-07-26 16:54:32 129

原创 h5 中 软键盘弹起遮住输入框问题

判断是ios还是安卓在body上写上class类名,根据原生提供的方法判断是ios还是安卓。上代码:if (window.YwkHybrid.os.android) { document.body.classList.add("android");} else { document.body.classList.add("iOS");}然后在.ios中给fixed定位。上代码body.iOS { position: fixed; width: 100%;}这样软键盘

2020-06-15 13:50:09 731

原创 中高级前端面试题

1.原型和原型链2.闭包3.节流和防抖4.js基本数据类型有几种5.区分数组和对象的方法6.js两个数相加精度问题怎么处理7.js基本数据类型和引用数据类型存储区别8.深拷贝和浅拷贝,一般怎么实现深拷贝9.js事件流10.异步(宏任务和微任务的执行顺序)11.重绘与重排(重排也叫回流)12.es6你常用的语法糖有哪些13.flex布局14.盒子模型15.安全问题16.web缓存,强缓存,协商缓存17.性能优化...

2020-05-20 17:34:42 295

原创 rebase 和 merge的区别

举例说明:master 上的提交记录: c1->c3->c4dev上的提交记录: c1 -> c2->c51.在master上merge dev后,按照 c1 -> c2 ->c3 -> c4 -> c5 ->c6 的提交记录去合并,合并完成后的提交记录就为c1 -> c2 ->c3 -> c4 -> c...

2019-08-03 14:14:57 234

原创 Class 语法糖 study

class可以看做就是一个语法糖,完全可以理解成es5中构造函数的另一种写法。每个class都会有一个constructor函数,不写的话,js默认会加上一个空的constructor函数。class与es5构造函数的区别1.class内部是严格模式,其实es6推崇的都是严格模式,什么是严格模式呢,大致理解就是写法更加的规范,eg: 不能使用未声明的变量,不能使用关键字和保留字,不...

2019-03-07 13:07:10 278

原创 七牛云图片加水印

## 七牛云图片加水印目标:用户登录进平台后,他看到的所有图片都要以他的用户名加上水印.1.首先说下七牛加水印的方法,首先附上官网地址:https://developer.qiniu.com/dora/manual/1316/image-watermarking-processing-watermark,官网上没有案列,第一次用的小伙伴可能有点懵逼(反正我第一用是有点懵逼,可能我比

2018-02-05 14:50:42 1837

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除