自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 JavaScript中Object.getOwnPropertyNames()与Object.keys(obj)的区别

大部分情况下Object.getOwnPropertyNames()与Object.keys(obj)的功能是一样的,我们一般也是用来获取一个JSON对象中所有属性,例如const obj = { property1: 1, property2: 2,};console.log(Object.keys(obj));console.log(Object.getOwnPropertyNames(obj));输出:> Array ["property1", "property

2021-12-27 14:56:29 201

原创 二叉树刷题有感

最近n刷二叉树的2题目var postorderTraversal = function(root) { let res=[]; const dfs=function(root){ if(root===null){ return; } dfs(root.left); dfs(root.right); res.push(root.val); } dfs(r

2021-11-20 11:11:42 115

转载 git stash的好处

GIT STASH和GIT STASH POP一、git pull 拉代码的时候,或者切换分支的时候,防止冲突和不便,,会用到git stash,将工作区内容暂存起来。比如:为了fix 一个bug, 先stash, 使返回到自己上一个commit, 改完bug之后再stash pop, 继续原来的工作。怎么办:1、git stash 备份当前工作区的内容,保存到git 栈中,从最近的一次commit中读取相关内容2、git pull 或者做其他的工作 3、git stas

2021-11-20 10:31:33 679

转载 记录一次react + typescript + antd 中table配置项 columns居中问题

在项目中直接写const columns = [ { title: '供应商ID', dataIndex: 'name', key: 'name', align: 'center' },typscript会检测报错处理方式:一:const columns = [ { title: '供应商ID', dataIndex: 'name', key: 'name', align:'center' as 'center',

2021-10-13 19:38:09 582

原创 整理面试题

let arr = [{name: ‘a’, values: [1, 2]},{name: ‘b’, values: [3]},{name: ‘a’, values: [4, 5]}]let name = []let newArr = []arr.forEach(el=>{ if(name.indexOf(el.name)==-1){ name.push(el.name) }})name.forEach((el,i)=>{ console

2021-09-27 18:44:04 83

原创 前端页面乱码问题

最近遇到一个关于页面乱码的问题,然后搜了很多人的博客也没有解决检查代码的时候发现它的编码就是UTF - 8的但是偶然发现是可以用记事本打开,发现底下的编码是ANSI然后将编码方式改成ANSI,打开浏览器就好了...

2021-09-02 16:27:38 78

转载 reduce实现filter,map 数组扁平化等

map函数接收一个函数作为参数,作为参数的函数接收三个参数值,分别是遍历数组的每一项元素,元素的索引和数组本身。这三个参数刚好和reduce函数接收的第一个函数参数的第2、3、4个参数是对应的。这是实现的核心实现思路是,将每次遍历的元素,作为传入的函数的参数,并将函数执行的结果放入新的数组中。reduce实现mapArray.prototype._map = function (callback) { if(typeof callback === 'function') { return

2021-03-26 09:22:28 77

原创 关于js的Object.defineProperty

好久不见,甚是想念今天你敲代码了嘛!?今天我们来聊聊js中的 Object.defineProperty方法,这个可是困扰了我半天,废话不多说,让我们来看看吧首先先上一个链接https://developer.mozilla.org/zh-cn/docs/Web/JavaScript/Reference/Global_Objects/Object/definePropertyMDN上面写的挺详细的,我也就是总结一些比较重要的方法var obj ={}object.defineProperty(ob

2021-02-03 10:40:48 195

原创 Promise的深度理解(二)

好久不见,甚是想念今天你敲代码了嘛!?让我们接着来看看Promise会遇到的一些问题吧如果没有看(一)的要先去看去哦友情链接https://blog.csdn.net/weixin_49449198/article/details/113524157如果看完了,让我们接着说吧三、改变 promise 状态和指定回调函数谁先谁后都有可能,正常情况下是先指定回调再改变状态,但也可以改状态再指定回调如何先改状态再指定回调在执行器中直接调用 resolve()/ reject()延迟更长

2021-02-02 13:47:12 126

原创 Promise的深度理解(一)

好久不见,甚是想念今天你敲代码了嘛?!今天让我们来看看Promise吧Promise 首先 本身不是异步,我们可以把它想象成处理异步的盒子粗俗的说是为了解决回调地狱,那么回调函数是干什么用的呢解答:一个定义的函数,作为另一个函数的实参传入到另一个函数中那么回调地狱是什么样子的呢让我们来看看第一个例子第二个例子var sayhello = function (name, callback) { setTimeout(function () { console.log(name);

2021-02-01 17:33:13 154

原创 关于JS 按值引用还是按地址引用

好久不见,甚是想念今天你敲代码了吗!?今天我们来聊聊JS 中 按值引用和按地址引用这个话题先给出结论哦~基本类型按值引用,对象类型按地址引用let a = {};let b = a;a.val = 1; // 此时 a → { val: 1 }, b → { val, 1 }a = {}; // 此时 a → {}, b → { val, 1 }1、在JS中,以上代码段中的a其实只是保存了一个内存中的地址,每次使用a的时候其实是通过地址去找到真正的{}2、而将a赋值给b,其实就是将a保存

2021-01-27 08:55:50 561

原创 关于js展开运算符的问题

大家好久不见,甚是想念今天你敲代码了吗!?今天我们来讨论一下js展开运算符的问题先上代码 让我们来看一下let d ={ a:2 b:{ x:[4,5,6], y:[1,2,3] }}e=d d.a =4console.log(e)这个时候我们都知道 d和e都被更改了 这个叫浅拷贝因此我们可以使用深拷贝来解决这个问题let d ={ b:{ x:[4,5,6], y:[1,2,3] }}e = [...d]

2021-01-26 13:07:07 489

原创 关于js如何访问函数内部变量

好久不见 甚是想念大家好 今天你敲代码了嘛!?今天让我们来聊聊 js 如何访问函数内部变量先上代码 // 栈类 function Stack() { // 栈中的属性 var items = [] // 栈相关的方法 // 压栈操作 this.push = function (element) { items.push(element) } // 出栈操作

2021-01-25 15:03:06 1601 1

转载 vuex中actions中函数默认自带参数context,为什么还可以写成{commit}或者{dispatch}或者其他的

context的话就相当于state的父亲,上一级,包含着state中的所有属性context:{ state, 等同于store.$state,若在模块中则为局部状态 rootState, 等同于store.$state,只存在模块中 commit, 等同于store.$commit dispatch, 等同于store.$dispatch getters 等同于store.$getters}常规写法调用的时候会使用context.com

2021-01-12 16:20:11 1466

转载 export 和 export default的一些区别以及引入时解构的用法

export只能导出 函数,变量名。无法导出对象另一个页面import引用时,需要{{}}解构,且函数名与变量名要一致一个vue模块可以多个exportexport default另一个页面import引用时,无需解构一个vue模块只能存在一个export default可以导出 函数,变量名, 数组。export 导出多个函数或变量名时,import 引入时的一些用法// xxx.vueexport const a = 1;export const b = 2;export con

2021-01-11 11:19:14 1192

原创 JS 数组push遇到的小问题

分享一个我遇到的问题 希望大家以后也可以避免先来描述一下我们想向一个数组里面push 之后 转Json格式我们都知道 push 是向数组里面 添加元素的 var data_1 = []; //获取输入的值 admin = $("input[name='admin']").val(); male = $("input[name='male']").val(); age = $("input[name='ag

2021-01-07 11:48:27 3537

原创 动态生成对象之后无法获取

今天分享一个jq获取对象时遇到的问题先来描述一下 点击提交按钮之后,将input的值 赋到 右面的表格里面因为是动态生成行列元素 所以我们使用字符串拼接的方法`html = "<tr><td>" +admin+"</td><td>"+male+"</td><td>"+age+"</td><td class='delete'>删除</td></tr>"`我们在拼接的时候 给删除这

2021-01-06 15:18:30 156

原创 vue2.x到vue3.x的一些变化

初学vue3.0这些天,感觉到了vue从2.x到vue3.x的变化还是蛮多的首先是一个setup函数,这个类似vue2.x中生命周期beforecreate之前就创建的函数,摒弃了vue2.x的data以及methods方法,引用了Reactive():声明单一对象时使用, ref():声明单一基础数据类型时使用reactiveref接受一个参数值并返回一个响应式且可改变的 ref 对象。ref 对象拥有一个指向内部值的单一属性 .value。但是reactive 是不支持响应式的,因此vue3

2020-11-29 20:19:42 420

原创 222.完全二叉树

题目描述给出一个完全二叉树,求出该树的节点个数。说明:完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层,则该层包含 1~ 2h 个节点。示例:输入: 1 / \ 2 3 / \ /4 5 6输出: 6思路 完全二叉树定义:一棵二叉树中,只有最下面两层节点的度可以小于2,并且最下层的叶节点集中在靠左的若干位置上,这样的二叉树称为完全二叉树。

2020-11-24 18:41:47 114

原创 452.用最少数量的箭引爆气球

题目描述在二维空间中有许多球形的气球。对于每个气球,提供的输入是水平方向上,气球直径的开始和结束坐标。由于它是水平的,所以纵坐标并不重要,因此只要知道开始和结束的横坐标就足够了。开始坐标总是小于结束坐标。一支弓箭可以沿着 x 轴从不同点完全垂直地射出。在坐标 x 处射出一支箭,若有一个气球的直径的开始和结束坐标为 xstart,xend, 且满足 xstart ≤ x ≤ xend,则该气球会被引爆。可以射出的弓箭的数量没有限制。 弓箭一旦被射出之后,可以无限地前进。我们想找到使得所有气球全部被引爆,

2020-11-23 19:46:09 112

原创 242. 有效的字母异位词

题目描述给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。示例 1:输入: s = "anagram", t = "nagaram"输出: true示例 2:输入: s = "rat", t = "car"输出: false解析1、如果两个数组长度不一致,则返回false2、创建一个map,用来存储每个字符出现的次数3、对于第一个单词的每个字母,也就是s1[ i ],在map 里将出现次数+1对于第二个单词的每个单词,也就是s2 [ i ],在m

2020-11-22 21:38:02 61

原创 147.对链表进行插入排序

题目描述插入排序的动画演示如上。从第一个元素开始,该链表可以被认为已经部分排序(用黑色表示)。每次迭代时,从输入数据中移除一个元素(用红色表示),并原地将其插入到已排好序的链表中。插入排序算法:插入排序是迭代的,每次只移动一个元素,直到所有元素可以形成一个有序的输出列表。每次迭代中,插入排序只从输入数据中移除一个待排序的元素,找到它在序列中适当的位置,并将其插入。重复直到所有输入数据插入完为止。示例 1:输入: 4->2->1->3输出: 1->2->3-

2020-11-20 14:01:24 48

原创 283.移动零

题目描述给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。思路:提供一个双指针第一种方法:i先遍历,遇到等于0的直接跳过,i++,遇到不是0的,将这个值赋给nums[k],然后k++ ,直到 i 遍历完,将 k 后面值手动赋值0就可以了代码var moveZeroes = function(nums) {

2020-11-19 20:20:02 55

原创 134.加油站

题目描述在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升。你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。如果你可以绕环路行驶一周,则返回出发时加油站的编号,否则返回 -1。示例 1:输入: gas = [1,2,3,4,5]cost = [3,4,5,1,2]输出: 3解释:从 3 号加油站(索引为 3 处)出发,可获得 4 升汽油。此时油箱有 = 0

2020-11-18 19:17:01 71

原创 1130.距离顺序排列矩阵单元格

【题目描述】给出 R 行 C 列的矩阵,其中的单元格的整数坐标为 (r, c),满足 0 <= r < R 且 0 <= c < C。另外,我们在该矩阵中给出了一个坐标为 (r0, c0) 的单元格。返回矩阵中的所有单元格的坐标,并按到 (r0, c0) 的距离从最小到最大的顺序排,其中,两单元格(r1, c1) 和 (r2, c2) 之间的距离是曼哈顿距离,|r1 - r2| + |c1 - c2|。(你可以按任何满足此条件的顺序返回答案。)示例 1:输入:R = 1,

2020-11-17 14:05:04 81

转载 彻底理解js中的闭包

闭包是js的一个难点也是它的一个特色,是我们必须掌握的js高级特性,那么什么是闭包呢?它又有什么用呢?我们都知道,js的作用域分两种,全局和局部,基于我们所熟悉的作用域链相关知识,我们知道在js作用域环境中访问变量的权利是由内向外的,内部作用域可以获得当前作用域下的变量并且可以获得当前包含当前作用域的外层作用域下的变量,反之则不能,也就是说在外层作用域下无法获取内层作用域下的变量,同样在不同的函数作用域中也是不能相互访问彼此变量的,那么我们想在一个函数内部也有限权访问另一个函数内部的变量该怎么办呢?闭包就

2020-11-16 16:39:59 59

原创 Node.js 中 module.export 和 export的 区别

exports 和 module.exports的一个引用:console.log(exports === module.exports) // => trueexports.foo ='bar'//等价于module.exports.foo = 'bar'exports和module.exports 的区别每个模块中都有一个module 对象module 对象中有一个exports 对象我们可以把需要导出的成员都挂载到 module.exports 接口对象中也就是:m

2020-11-02 18:26:13 301 2

原创 JavaScript BOM

BOMWindow​ -代表的是整个浏览器的窗口,同时window也是网页中的全局对象Navigator​ -代表的当前浏览器的信息,通过该对象可以来识别不同的浏览器navigator.userAgent 是一个字符串,这个字符串中包含有用来描述浏览器信息的内容不同的浏览器会有不同的userAgentLocation url​ -代表当前浏览器的地址栏信息,通过location可以获取地址栏信息,或者操作浏览器跳转页面如果直接打印locat

2020-10-21 14:44:55 49

原创 CSS position

position子绝父相position 属性的五个值:static 静态定位relative 相对定位fixed 固定定位absolute 绝对定位sticky 粘性定位元素可以使用的顶部,底部,左侧和右侧属性定位。然而,这些属性无法工作,除非是先设定position属性。他们也有不同的工作方式,这取决于定位方法。fixed 定位元素的位置相对于浏览器窗口是固定位置。即使窗口是滚

2020-10-21 14:22:18 102

原创 CSS float

float浮动float 浮动的现象:0.文字环绕1.脱离了标准文档流2.浮动元素互相贴靠3.浮动元素有收缩现象最典型的应用:可以让多个块级元素一行内排列显示重要特性:1.脱离标准普通流的控制移动到指定位置2.浮动的盒子不再保留原先的位置任何元素都可以浮动,不管原先是什么模式的元素,增加浮动之后具有行内块元素相似的特性如果块级盒子没有设置宽度,默认宽度和父级一样宽,但是添加浮动后,它的大小根据内容来定一个元素浮动了。理论上其余的兄弟元素也要浮动浮动的盒子只会影响浮动盒子后面的标准流

2020-10-21 14:19:11 70

原创 CSS

css元素块级元素(block)特性:总是独占一行,表现为另起一行开始,而且其后的元素也必须另起一行显示;宽度(width)、高度(height)、内边距(padding)和外边距(margin)都可控制;内联元素(inline)特性:和相邻的内联元素在同一行;宽度(width)、高度(height)、内边距的top/bottom(padding-top/padding-bottom)和外边距的top/bottom(margin-top/margin-bottom)都不可改变,就是里面文

2020-10-21 14:18:02 86

原创 DOM 中的事件对象和addEventListener

DOM 中的事件对象和addEventListener 常见事件对象的属性和方法 1. e.target 返回的是触发事件的对象(元素) this 返回的是绑定事件的对象(元素) 区别 : e.target 点击了那个元素,就返回那个元素 this 那个元素绑定了这个点击事件,那么就返回谁 var div = document.querySelector('div'); div.addEventListener('click', function(e) {

2020-10-21 14:10:12 289

空空如也

空空如也

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

TA关注的人

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