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

原创 js 往对象中增加变量时,相同变量采用后边加递增数字的算法
/** * @description: 往对象中增加字段,如果对象中存在同名对象,则将字段加递增数字后加入对象中 * @param {Object} object 需要增加字段的对象 * @param {string} field 需要增加的字段名 * @return {object} 增加字段后的对象 */function addFieldObject(object, field:string) { // 没有重名的直接往对象中增加字段 if(!object[field]) {.
2021-09-16 17:05:02
729

原创 大数相加算法
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
91

原创 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
492

原创 前端进行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
7282
3

原创 eventLoop 事件循环
js是单线程脚本语言,开发中了解代码执行顺序就显得格外重要。js从上往下执行过程中,遇到同步任务会直接执行,但如果所有都是同步任务,会造成严重的问题。比如说向服务器请求数据,就没必要等到接口返回后才执行后续操作。因此,就有了异步的概念。异步又分为宏异步和微异步正常情况下js从上往下执行,遇到script标签后...
2020-07-03 14:55:48
133
原创 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
207
原创 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
307
原创 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
802
原创 中高级前端面试题
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
342
原创 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
287
原创 Class 语法糖 study
class可以看做就是一个语法糖,完全可以理解成es5中构造函数的另一种写法。每个class都会有一个constructor函数,不写的话,js默认会加上一个空的constructor函数。class与es5构造函数的区别1.class内部是严格模式,其实es6推崇的都是严格模式,什么是严格模式呢,大致理解就是写法更加的规范,eg: 不能使用未声明的变量,不能使用关键字和保留字,不...
2019-03-07 13:07:10
333
原创 七牛云图片加水印
## 七牛云图片加水印目标:用户登录进平台后,他看到的所有图片都要以他的用户名加上水印.1.首先说下七牛加水印的方法,首先附上官网地址:https://developer.qiniu.com/dora/manual/1316/image-watermarking-processing-watermark,官网上没有案列,第一次用的小伙伴可能有点懵逼(反正我第一用是有点懵逼,可能我比
2018-02-05 14:50:42
1923
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人