自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 敏捷开发:DevOps

文章目录一、敏捷开发的流程二、敏捷开发三、总结一、敏捷开发的流程plan : 计划code : 编码build : 打包编译test :发布测试release :发布正式版本deploy :部署operate :运行维护monitor :监控二、敏捷开发确定项目需求:使用版本控制工具对开发的代码进行管理使用熟悉的IDE工具开发测试,开发完成后扭转到缺陷控制平台去告诉测试人员或需求人员已经完成功能文档管理:根据修改过后的接口、需求文档通过文档形式反馈,帮助测试人员进行验证测试

2021-11-27 13:55:57 857

原创 深入JavaScript: 手写call和apply

Function.property.call 功能:改变this指向函数传递多个参数思路:1.如何改变this的指向将当前添加到作用域为属性,从而更改它的this指向,调用后删除let a = 10017;let obj = { a: 10018;}function A() { console.log(this.a)}bar.call(obj)...

2021-11-16 12:33:52 1381

原创 LeetCode 215.数组中的第k个最大元素

给定一个数组和一个整数k,返回数组中第k大的整数[1, 9, 5 , 9, 9] 和 k = 2,返回 9// 排序数字大小,通过length - k 得到第k大let function(array,k) { array.sort(); return array[array.length - k];}

2021-11-15 12:42:18 238

原创 LeetCode 46.全排列

给定一个无重复数字序列,返回其所有可能组合// 123 132 213 231 312 321

2021-11-15 11:55:31 376

原创 LeetCode 20.有效的括号

题目:

2021-11-14 22:36:37 374

原创 解构赋值不赋值?

介绍定义: 根据规则,从数组和对象当中提取值,并对变量进行赋值规则: 等号两边的模式相等,才能赋值匹配机制:可以匹配空位,不成功则undefined()等号右边如果不是可遍历对象(具备iterator接口),则报错,只要是可遍历就可以解构赋值关键字使用:var、let、const、Set默认值:Demo数组:let [1,2,3] = [a,b,c];// 1,2,3let [a,,c,d] = [1,2,3];// 1,,3,undefinelet [a,...b] = [1,

2021-11-12 07:35:52 1205

原创 手写instance

function Myinstance(left,right) { let proto = Object.getPrototypeOf(left); while(true) { if(proto === null) { return false } if(proto === right.getPrototype) { return true } proto = Object.getPrototypeOf(proto) }}

2021-11-11 09:03:52 426

原创 防抖节流

函数防抖在事件被触发n秒后再执行回调,如果在n秒内被触发,则重新计时function debunce(func,interval) { let timer = null; return function(...args) { let context = this; if(timer) { clearTimeout(timer) } timer = setTimeout(() => { func.apply(this,...args)

2021-11-11 08:49:10 198

原创 设计模式:单例模式

单例模式 核心就是一个类只有一个实例,实现方式 一般情况,先判断实例是否存在,如果存在直接返回,如果不存在就创建了再返回,确保一个实例只有一个对象闭包var Singleton = function() {}...

2021-11-10 12:34:31 233

原创 手写flat函数

扩展运算符 + 递归let arr = [1,]

2021-11-09 11:57:36 510

原创 数组扁平化

递归let arr =[ 1,[ 2,[3,4]]];function flattrn() { let result = []; for(let i = 0,i<arr.length,i++) { if(Array.isArray(arr[i])){ flattrn(arr[i]) } else { return result.push(arr[i]) } } return result; }co

2021-11-08 12:14:33 609

原创 你所不知道的数组(ES6)

文章目录Array.push(element...)Array.pop()Array.shift()Array.unshift(element...)Array.indexOf(elem,index)Array.splice()Array.slice(begin,end)Array.forEach数组的常用操作二、使用步骤1.引入库2.读入数据总结Array.push(element…)将一个或多个元素添加到数组的末尾,返回值:数组新长度Tip:call 和 apply 合并数组:var a = [

2021-11-07 21:15:14 358

原创 对象方法总结(ES6)

文章目录一、Object.assign(obj...)二、Object.defineProperty(obj, prop,descriptor)三、Object.defineProperties(obj.props)四、Object.getOwnPropertyDescriptor(obj,prop)五、Object.getOwnPropertyDescriptors(obj)六、Object.entries(obj)七、Object.freeze(obj)八、Object.isFrozen(obj)九、O

2021-11-06 16:03:13 881 2

原创 深入浅出:浅冻结和深冻结

文章目录一、Object.freeze()?二、浅冻结三、深冻结一、Object.freeze()?Object.freeze(obj) :提供了一个功能,叫做冻结对象,而被冻结的对象不能添加新属性,删除已有属性,不可修改defineProperty : 可枚举性Enumerable,可配置性Configurable,可写性Writable,以及包括它的原型也是不可修改的。二、浅冻结对象被冻结时,它是不可修改的,对于浅冻结对象来说,它只是冻结了第一层对象,第二层无法冻结(对象的内部对象无法被冻结

2021-11-06 13:45:27 940

空空如也

空空如也

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

TA关注的人

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