自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JS常用的字符串方法

文章目录1. `charAt(index)`2. `charCodeAt(index)`3. `indexOf(searchvalue, fromindex)`4. `lastIndexOf(searchvalue, fromindex)`5. `match(substr)` `match(regexp)`6. `substring(start, end)`7. `substr(start, length)`8. `slice(start, end)`9. `replace(regexp/substr,

2020-05-22 19:03:35 347

原创 JS常用的数组方法

按照返回值分类1. 原数组改变2. 原数组不变

2020-05-15 18:56:28 357

原创 scss中的数组及遍历

应用场景解决方案SCSS 循环是从 1 开始,不是 0<style lang="scss" scoped>// scss中定义数组,注意这里都无需加引号~~$colors: #0A70F5, #00B365, #FFC300, #F5483B, #F03096, #8E3DEB, #00B8B1, #FF8800, #0FA4FA, #FF5E1A; .mtd-select { width: 100%; // 开始 @each 循环遍历数组 // $c

2022-03-09 14:02:04 2261

原创 javascript_递归扁平化三级数组

输入:扁平化输出:{ code: int, text: str, parentCode: int, parentText: str, grandParentCode: int, grandParentText: str}[]/** * @desc 将三级数组扁平化为带有父级及以上节点 * @param {array} source * @return {object} 伪数组 */export function deepTraversalCity

2022-03-09 11:40:59 1072

原创 git操作合集

删除本地分支(必须切换到其他分支上才能删除)git branch -d [branchname]删除远程分支([branchname]前不需要加origin/)git push origin --delete [branchname]本地仓库回滚回滚到上一次:git reset --hard HEAD^回滚到某一次:git reset --hard 目标版本号远程仓库回滚$ git reset --hard 目标版本号$ git push -f本地切换远程分支

2022-03-09 11:38:30 262

原创 史上最全的Vue开发规范

掘金-史上最全的Vue开发规范

2022-02-14 11:14:15 753

原创 vue-property-decorator

vue-property-decorator基础教程为什么要使用vue-property-decorator如何使用vue-property-decorator基本写法data中定义数据生命周期钩子函数方法@Component@Prop@Emit计算属性@Watch为什么要使用vue-property-decoratorvue-property-decorator是在vue-class-component的基础上做了进一步的封装,在TypeScript官方文档 中,官方推荐了vue-class-com

2021-07-20 15:42:31 25386

原创 js的词法作用域

let x = 1;function A(y){ let x = 2; function B(z){ console.log(x+y+z); } return B;}let C = A(2);C(3); // 7原理:

2020-09-23 20:45:59 269 1

原创 this到底指向哪里

this永远指向的是最后调用它的对象,也就是看它执行的时候是谁调用的情况1:如果一个函数中有this,但是它没有被上一级的对象所调用,那么this指向的就是window,这里需要说明的是在js的严格版中this指向的不是window,但是我们这里不探讨严格版的问题,你想了解可以自行上网查找。情况2:如果一个函数中有this,这个函数有被上一级的对象所调用,那么this指向的就是上一级的对象。情况3:如果一个函数中有this,这个函数中包含多个对象,尽管这个函数是被最外层的对象所调用,this指向的也只

2020-09-19 14:07:51 330

原创 进程和线程、进程之间的通信方式、线程死锁

就怎么说。。。就没有办法,面试问的你怀疑人生。。。一、进程和线程进程是资源分配的最小单位,线程是CPU调度的最小单位。做个简单的比喻:进程=火车,线程=车厢线程在进程下行进(单纯的车厢无法运行) 一个进程可以包含多个线程(一辆火车可以有多个车厢)不同进程间数据很难共享(一辆火车上的乘客很难换到另外一辆火车,比如站点换乘) 同一进程下不同线程间数据很易共享(A车厢换到B车厢很容易)进程要比线程消耗更多的计算机资源(采用多列火车相比多个车厢更耗资源)进程间不会相互影响,一个线程挂掉将导致整个进程挂

2020-09-11 18:34:36 316 1

原创 不太明显的闭包

还是一道面试题:var a = 0, b = 0;function A(a) { A = function (b) { console.log(a + b++) } console.log(a++)}A(1) // 1A(2) // 4记录下这道题主要是因为我一开始对闭包的理解过于浅显了,之前对它的定义是:外部函数中返回的内部函数内使用了外部函数的变量。实际上,闭包不需要返回函数。闭包可以理解为:“定义在一个函数内部的函数”。正常函数执行完毕后,里

2020-09-11 13:12:19 149

原创 js中连等的执行顺序:a.x = a = {n: 2}

新的一天从一道查漏补缺题开始:let a = {n : 1};let b = a;a.x = a = {n: 2}; console.log(a.x) // undefinedconsole.log(b.x) // {n:2}解析:多次赋值与顺序无关,是同时进行赋值的每个节点的变量最终赋值的值取决去最后一个等号的右边值如果赋值是引用类型,则最终指向的是同一个对象a.x=引用的是堆内存里面的属性变量,在解析时会直接对这个地址的变量进行操作,而a=访问变量栈内存里面这

2020-09-11 09:51:17 1618 3

原创 扩展运算符在字符串/数组/对象中的具体使用方法

文章目录字符串1. 把字符串转换为数组数组1. 复制数组2. 分割数组3. 合并数组4. 将数组转化为参数传递给函数对象1. 复制对象2. 给对象设置默认值3. 合并对象最近在准备秋招,感觉对扩展运算符(…)的使用还不是特别了如指掌,有必要总结一波啦。字符串1. 把字符串转换为数组数组1. 复制数组复制一层:深拷贝复制两层以上:浅拷贝2. 分割数组3. 合并数组4. 将数组转化为参数传递给函数对象1. 复制对象2. 给对象设置默认值3. 合并对象...

2020-09-06 22:28:28 966

原创 promise的一点小Tip

今天练习promise的时候,let p1 = new Promise((resolve, reject) => { setTimeout(() => { resolve('hello') }, 2000)})console.log('1', p1)let p2 = new Promise((resolve, reject) => { setTimeout(() => { resolve('world') },

2020-09-02 11:19:10 416

原创 从一道题看Object.defineProperty(),Object.create(),for...in...用法

文章目录一、Object.defineProperty()数据描述存取器描述二、 Object.create()三、遍历对象总结今天从一道题开始:以下代码的输出结果是:let o = { foo: 'foo'}let obj = Object.create(o)Object.defineProperty(obj, 'bar', { value: 3})obj.bar = 'bar'for(const key in obj){ console.log(obj, key

2020-09-01 22:09:43 630

原创 JavaScript实现一个简单的双向绑定

一、基本实现<body> <input type="text" id='input'> <span id="show"></span></body><script> var obj = {} Object.defineProperty(obj, 'txt', { get: function(){ return obj },

2020-08-31 15:21:27 428

原创 多进程的浏览器 / 单线程的JavaScript 运行机制

写在前面:很久没写点东西了。最近秋招面试逐渐开始多了起来,越来越发现了自己的薄弱点,所以今天再详细总结下关于浏览器和js的运行机制吧多进程的浏览器浏览器有以下多个进程:Browser进程(主进程):协调、总控第三方插件进程:每种类型的插件对应一个进程,仅当使用该插件时才创建GPU进程:最多一个,用于3D绘制浏览器渲染进程(即内核):每一个Tab页默认为一个浏览器渲染进程。内部有5大线程。浏览器渲染进程通常有以下线程组成:GUI渲染线程负责渲染浏览器界面,解析 HTML、CSS,构建

2020-08-31 09:14:14 197

原创 上下固定 中间自适应滚动布局 overflow:auto

方案一:position+overflow:auto首先我们需要彻底了解overflow属性,这个属性定义溢出元素内容区的内容会如何处理依照我个人的理解有以下几种情况:值描述visible默认值,内容不会被修剪,会呈现在元素框之外hidden内容会被修剪,并且其余内容是不可见的,目前主要用于清除浮动scroll不管内容是否溢出,浏览器都会显示滚动条auto内容溢出时,浏览器会显示滚动条;内容不溢出,则浏览器也不显示滚动条css<style&g

2020-08-25 16:09:33 828

原创 JZ1 二维数组的查找——二分法拓展到二维

题目描述在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。题解以下来自牛客官方题解:回想一下一维有序数组查找某个值二分的过程,如下图所示:假设目标tar在arr[1]处,那么我们的二分过程就是:1)设初始值:定义一个二分的开始下标为l,结束下标为r,如图所示:2)二分一半,中间位置为 mid = l + ((r - l) >> 1), va

2020-08-08 11:50:59 707

原创 关于JS中的浮点数运算

文章目录浮点数的存储浮点数的运算如何解决参考这篇文章起于「查缺补漏」送你 54 道 JavaScript 面试题浮点数的存储和其它语言如Java和Python不同,JavaScript中所有数字包括整数和小数都只有一种类型 — Number。它的实现遵循 IEEE 754 标准,使用64位固定长度来表示,也就是标准的 double 双精度浮点数(相关的还有float 32位单精度)。这样的存储结构优点是可以归一化处理整数和小数,节省存储空间。64位比特又可分为三个部分:符号位S:第 1 位

2020-07-24 19:44:09 2019

转载 nodejs websocket 实现简易聊天室功能

文章目录1. 服务端 app.js 代码2. 客户端 app.html 代码3. 样式代码 app.css4. nodemon 辅助开发首先说明,以下代码都是基于Nodejs+webSocket搭建多人聊天室实现,我只是复现了一遍,画了张图供自己理解。数据格式及大致过程简图:1. 服务端 app.js 代码const ws = require('nodejs-websocket')const broadcast = (str) => { server.connections.fo

2020-07-22 20:25:17 847

原创 封装时间函数,格式为“2020-07-22 10:12:11”

Date.prototype.Format = function (fmt) { var o = { "M+": this.getMonth() + 1, //月份 "d+": this.getDate(), //日 "h+": this.getHours(), //小时 "m+": this.getMinutes(), //分 "s+": this.getSeconds(), //秒 "q+": Mat

2020-07-22 15:21:01 207

原创 浏览器缓存策略,看了这张图你就全懂啦

2020-07-21 19:18:48 147

原创 session cookie token 及 ajax 中如何应用

概述:cookie 验证准确的说是利用 cookie 来作为媒介,存储 session ID 进行验证,下文中提到的 cookie 验证主要是指 session ID 存储到 cookie 中进行的验证token 其实也可以借助 cookie 来存储,token 验证主要是指 token 存储在 Authorization Header 中进行的验证。http是无状态的:它就像一个机器一样,只知道机械地运转,但无法区分是谁在控制它,是谁在请求它。cookiecookie本质上是实现了session

2020-07-12 19:40:55 420

原创 node.js基础知识整理

个人总结网上看到别人总结的图,保存下来备用吧:图片转自:https://www.jianshu.com/p/256ffd1d8caf

2020-07-07 11:28:57 113

原创 ES6/7/8常用知识点整理

2020-07-04 10:13:10 163

原创 vue——tab菜单项滑动切换

效果图:一开始的做法是将这个高亮绿色的部分作为选中项的左边框处理,但这样做切换时的视觉效果不好,现在修改以后更加美观。实现方法:将这个宽3px 高41px的小div设为绝对定位,动态改变它的位置,即top值具体代码:将侧边栏分为两个部分:滑块(左侧) + 菜单项(右侧),并为滑块动态绑定style将滑块设置为绝对定位position: absolute,初始位置在最上方top: 0; left: 0,transition设置过渡动画当点击任一菜单项时,改变滑块的位置...

2020-06-29 15:30:18 3139

原创 JZ 链表有关

文章目录1. JZ 3 从尾到头打印链表2. JZ 14 链表中倒数第k个结点3. JZ 15 反转链表4. JZ 16 合并两个排序的列表5. JZ 25 复杂链表的复制6. JZ 26 二叉搜索树与双向链表7. JZ 36 两个链表的第一个公共结点8. JZ 55 链表中环的入口结点9. JZ 56 删除链表中重复的结点1. JZ 3 从尾到头打印链表/*function ListNode(x){ this.val = x; this.next = null;}*///list

2020-06-17 18:23:29 535

原创 JZ62 二叉搜索树的第k个结点

题目描述给定一棵二叉搜索树,请找出其中的第k小的结点。例如, (5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4。题解二叉搜索树:左子树的值 < 根结点的值 < 右子树的值二叉搜索树的中序遍历正好是从小到大的有序列表代码:/* function TreeNode(x) { this.val = x; this.left = null; this.right = null;} *///二叉搜索树:左子节点值<根节点值

2020-06-16 21:46:30 153

原创 JZ63 数据流中的中位数——大顶堆、小顶堆

题目描述如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。我们使用Insert()方法读取数据流,使用GetMedian()方法获取当前读取数据的中位数。题解此题应该着重于考察大顶堆和小顶堆。之所以提供两个函数,就是想让大家动态的获取比如插入之后,通过getmedian能立马获得中位数,需要动态的更新具体思想可看:https://leetcode-cn.com/

2020-06-15 18:51:20 221

原创 JZ66 机器人的运动范围——DFS

题目描述地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+5+3+8 = 19。请问该机器人能够达到多少个格子?题解此题用DFS(深度优先搜索)可以求解。下面引用及模板参考:DFS(深度优先搜索算法)深度优先搜索算法(Depth First Search,简称

2020-06-12 15:39:16 214

原创 JZ67 剪绳子——递归、动态规划

题目描述给你一根长度为n的绳子,请把绳子剪成整数长的m段(m、n都是整数,n>1并且m>1),每段绳子的长度记为k[0],k[1],…,k[m]。请问k[0]xk[1]x…xk[m]可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。题解1. 递归分析:定义f(n)f(n)f(n)为我们所需要的长度为n的剪成m段的最大乘积。对于每一段来说,可以选择不剪,即f(n)f(n)f(n),也可以选择剪,剪又可以分为f(i)∗f(n

2020-06-11 11:21:47 320

原创 Vue3.0商城页面的开发--思路

理一下基于Vue3.0商城页面的开发思路。1. 组件基本嵌套思想:2. MALL组件中的导航部分样式动态改变:通过一个组件数据current表示当时选中的导航项的名称,为每个导航项注册点击事件以“手机”为例:<a :class = "{active: this.current == '手机' @click = changeClass('手机')}">手机</a>methods:{ changeClass(c){ this.current = c

2020-06-09 15:13:57 1479

原创 Web前端之移动端开发__积累

养成了一个习惯——把博客当朋友圈发,虽然自己很菜哈哈,但是在学习的道路上永远无惧向前!奥利给!最近在做一个小项目吧,算是一个项目吧应该,第一次做公司里的小项目,比学校里的项目多了很多规矩,中间第一次交的时候,对方给我提了20个点吧,当时就惊呆了,怀疑自己不是一点点,但万事开头难嘛,不怕。然后下面是这一周学到的点吧:1. 移动端组件库:Vant官方文档:Vant2. postcss-px-to-viewport将px单位自动转换成viewport单位使用方法:移动端适配方案之postcss-

2020-06-08 21:15:37 723 1

原创 HTTP常见状态码

2XX 成功· 200 OK,表示从客户端发来的请求在服务器端被正确处理· 204 No content,表示请求成功,但响应报文不含实体的主体部分· 206 Partial Content,进行范围请求3XX 重定向· 301 moved permanently,永久性重定向,表示资源已被分配了新的 URL· 302 found,临时性重定向,表示资源临时被分配了新的 URL· 303 see other,表示资源存在着另一个 URL,应使用 GET 方法丁香获取资源· 304 not m

2020-06-01 16:04:27 94

原创 项目索引_实例索引 练习—第一课

文章目录总结知识点1-1 控制div属性1-2 网页换肤(相对较难)1-3 函数接收参数并弹出1-4 用循环将三个div 变成红色1-5 鼠标移入移出改变样式1-6 记住密码提示框练习网址:实例索引总结知识点根据标签获取元素时用 document.getElementsByTagName('div'),得到的是数组,即使只有一个元素,也要用document.getElementsByTagName('div')[0]根据类名获取元素时用document.querySelector('.mai

2020-05-29 10:51:57 169

原创 JS高级知识点思维导图

今天找到一张以前做的js高级的思维导图,记录下来,怕后面丢了

2020-05-27 15:37:40 426

原创 单链表基本操作 —js

一、链表(LinkedList)数据结构的逻辑结构分为:集合结构、线性结构、树形结构、图形结构物理结构分为:顺序存储结构、链接存储结构顺序存储结构表现为:数组链接存储结构表现为:链表单链表双向链表单向循环链表二、使用JS实现链表1. 单链表实现单链表的原理在于,要不断更新节点的next指针,使整个链表串联起来 class Node { constructor(val) { this.value = val this

2020-05-20 20:25:00 338 1

原创 学而思 实习 一面

1.说一下html,css,javascript各自的作用html:取得网页内容(装载dom元素)css:整理讯息(装饰dom元素)javascript:实现网页动态效果(控制dom元素)2.常用的html标签排版标签:标题标签:<hn>标题文本</hn>(n=1,2,...,6)段落标签:<p>文本内容</p>水平线标签:<hr/>换行标签:<br/>div span标签:<div></div

2020-05-15 16:16:38 764

原创 vue的生命周期详细图解(中文版!!!)

文章目录1. 生命周期持续更新。。。。。。1. 生命周期

2020-05-15 10:35:43 774

空空如也

空空如也

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

TA关注的人

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