- 博客(28)
- 收藏
- 关注
原创 力扣每日一题[3.无重复字符的最长子串]
力扣每日一题 [3.无重复子串的最长字符] (中等) var lengthOfLongestSubstring = function(s) { let i = 0; let max = 0 let map = new Map() for(let j = 0;j<s.length;j++){ if(map.has(s[j])){ i = Math.max(map.get(s[j]) + 1,i) }
2020-08-19 09:34:41
293
原创 力扣每日一题 [1.两数之和]
力扣每日一题 [1. 两数之和] /** * @param {number[]} nums * @param {number} target * @return {number[]} */ var twoSum = function(nums, target) { const map = new Map() for(let i = 0;i < nums.length; i++){ const num = nums[i] const num2 =
2020-08-17 08:31:41
277
原创 删除链表节点的三种方式
1、运用单指针删除 把下一个节点的值赋给当前要删除的节点 当前节点指向下下个节点 /** * Definition for singly-linked list. * function ListNode(val) { * this.val = val; * this.next = null; * } */ /** * @param {ListNode} node * @return {void} Do not return anything, modify node in-p
2020-07-30 09:27:44
4463
原创 纪念第一次面试
2020/7/13 前言 上一篇文章说距离面试还有3天,到现在过去了十几天,现在也是顺利拿到了offer,比较开心,但相对开心而言,迎来的是更大的挑战,身边有很多厉害的同事,这对于我来说,算是一件好事,目标很明确。 面试前 我是在6/18开始准备面试,本打算7天复习完,但是发现东西很多,又遇到了端午节,就推到了7/2才开始一面,所以我应该是有14天的准备时间。其实,14天的时间很短,也是很难复习彻底的,这个应该感谢我在3/1开始就每天做3道面试题,于是14天里面JavaScript只用了2天就准备差不多了,
2020-07-13 11:11:54
238
原创 不发动态的日子里,都在好好生活
2020/6/9 ——2020/6/21 十几天没有记录学习的过程了,是因为这几天一直在考试,没错,就是考试周。各种复习,补各种作业。 期间也有学习react 也在学习ES6的继承 说在最后,生活总是要记录的,不管是文字还是声音和视频。 ...
2020-06-16 21:53:43
1369
原创 【继承系列】JS中的混入方式继承
1. 混入方式继承 之前我们都是一个子类继承一个父类,而混入方式继承是一个子类继承多个父类 这里,我们需要用到Object.assign() 它的作用就是可以把多个对象的属性和方法拷贝到目标对象中,若是存在同名属性的话,后面的会覆盖前面。(属于浅拷贝) 简单看个????: const obj = { name: 'andy', colors: ['red', 'blue'] }; const obj2 = {name:'nike'} const obj3 = Object.assign(obj
2020-06-09 19:48:26
1151
1
原创 【继承系列】JS中的寄生式继承
1. 寄生式继承 寄生式继承就是在原型式继承的基础上再封装一层,来增强对象,之后将这个对象返回。 来看看伪代码 function createAnother (original) { const clone = Object.create(original);; // 通过调用 Object.create() 函数创建一个新对象 clone.fn = function () {}; // 以某种方式来增强对象 return clone; // 返回这个对象 } 1.1 题目一 了解寄生式继承的
2020-06-08 11:13:56
451
原创 position的4个值和用法
1. position的4个值 我理解的四个值为 absolute relative fixed sticky 2. 用法 2.1 absolute position:absolute 绝对定位 TOP、RIGHT、BOTTOM、LEFT(下面简称TRBL) 如果元素没有设定TRBL并且父级没有设定position属性,那么当前设置absolute的元素默认依据父级的坐标原始点为原始点。 如果元素设定TRBL并且父级没有设定position属性,那么当前设置absolute的元素则以浏览器左上角为
2020-06-07 19:56:46
5516
原创 【继承系列】JS中的原型式继承
1. 原型式继承 注意:是原型式继承,不是原型链继承 该方法的原理是创建一个构造函数,构造函数的原型指向对象,然后调用 new 操作符创建实例,并返回这个实例,本质是一个浅拷贝。 伪代码如下: function objcet (obj) { function F () {}; F.prototype = obj; return new F(); } 1.1 题目一 我们先看一个比较熟悉的东西 const cat = { heart: '❤️', colors: ['white', 'b
2020-06-06 12:12:33
1719
原创 【继承系列】JS中的寄生组合继承
1.寄生组合继承 我们先看下上次说到的组合继承缺点 父类构造函数会被调用两次 生成了两个实例(子类实例,和子类原型对象) 那现在我们需要跳过执行new Parent(),并且直接继承父类原型链上属性 也就是说,我们需要一个干净的实例对象,来作为子类的原型。并且这个干净的实例对象还得能继承父类的属性。 这就需要知道Object.create()的用法了 Object.create(proto, propertiesObject) 参数: proto:新创建对象的原型对象。 propertiesObjec
2020-06-05 11:14:59
457
原创 【继承系列】JS中的组合继承
1.组合继承 既然原型链继承和构造函数继承都有这么多的缺点,我们可以将他们两个结合一下。 看下他们两个的伪代码,该如何组合 // 原型链继承 Child.prototype = new Parent() // 构造继承 function Child () { Parent.call(this, ...arguments) } 1.1 组合继承的概念 组合继承就是将原型链继承与构造函数继承组合在一起,从而发挥两者之长的一种继承模式。 1.2 思路 使用原型链继承来保证子类能继承到父类原型中的属性和方法
2020-06-04 15:44:38
737
原创 【继承系列】JS中的构造函数继承
1.构造函数继承 在子类构造函数内部使用call或apply来调用父类构造函数 我们先来复习一下call和apply方法。 通过call()、apply()或者bind()方法直接指定this的绑定对象, 如foo.call(obj)使用.call()或者.apply()的函数是会直接执行的,而bind()是创建一个新的函数,需要手动调用才会执行 .call()和.apply()用法基本类似,不过call接收若干个参数,而apply接收的是一个数组 举个????: const obj = { a:'
2020-06-03 11:08:44
887
1
原创 【继承系列】JS中的原型链继承
1. 原型链继承 将子类的原型对象指向父类的实例 1.1 题目一 function Parent () { this.name = 'Parent' this.sex = 'boy' } Parent.prototype.getName = function () { console.log(this.name) } function Child () { this.name = 'child' } // 将Child的原型对象指向Parent的实例对象 Child.prototype
2020-06-02 11:50:09
306
原创 export default function和export function的区别
1.一个模块中export default只能有一个,export可以有多个 // demo01.js export const num1 = 1; export const num2 = 12; export const num3 = 123; const address = '北京市'; export default address; // demo02.js import { num1,num2,num3 } from './demo01.js'; console.log(num1,num2,nu
2020-06-01 12:26:01
3164
原创 说一下事件委托
基本概念 事件委托,通俗地来讲,就是把一个元素响应事件(click、keydown…)的函数委托到另一个元素; 一般来讲,会把一个或者一组元素的事件委托到它的父层或者更外层元素上,真正绑定事件的是外层元素,当事件响应到需要绑定的元素上时,会通过事件冒泡机制从而触发它的外层元素的绑定事件上,然后在外层元素上去执行函数。 举个例子,比如一个宿舍的同学同时快递到了,一种方法就是他们都傻傻地一个个去领取,还有一种方法就是把这件事情委托给宿舍长,让一个人出去拿好所有快递,然后再根据收件人一一分发给每个宿舍同学;
2020-05-31 11:14:09
555
原创 display:none和visibility:hidden的区别
1.隐藏元素后是否占据空间 display:none 不占据空间 visibility:hidden 占据空间 2.是否产生回流 display:none 产生回流 visibility:hidden 不产生回流 3.是否有继承 visibility具有继承性,给父元素设置visibility:hidden;子元素也会继承这个属性。但是如果重新给子元素设置visibility: visible,则子元素又会显示出来。这个和display: none有着质的区别 示例: <style
2020-05-30 10:32:30
385
原创 手写instanceof原理
A instanceof B 判断 B 的 prototype 属性指向的原型对象(B.prototype)是否在对象 A 的原型链上。 如果在,则为 true;如果不在,则为 false。 function myInstanceof(left, right) { if (typeof left !== "object" || left == null) return false let proto = Object.getPrototypeOf(left); while (true) {
2020-05-28 15:32:23
463
原创 手写new实现原理
function modelNew(Parent, ...test) { // 1.创建一个空对象 let result = {}; // 2.把Parent的this指向this result.__proto__ = Parent.prototype; // 3.执行parent的代码为result添加属性,如果构造函数有返回结果,则接收 let target = Parent.apply(result, test) if (typeof target === "ob
2020-05-28 14:28:38
707
原创 new URLSearchParams(iterable)在post传参数应用
1.使用简述 let params; // 使用数组。 params = new URLSearchParams([ ['user', 'abc'], ['query', 'first'], ['query', 'second'] ]); console.log(params.toString()); // 打印 'user=abc&query=first&query=second' // 使用 Map 对象。 const map = new Map(); map.set('
2020-05-26 16:16:56
814
转载 vue @click.native和@click.stop和@click.self的区别
https://blog.youkuaiyun.com/weixin_41646716/article/details/90069562
2020-05-25 14:51:12
1517
原创 配置Nginx反向代理解决跨域
1.了解正向代理和反向代理 1.1 正向代理 代理是在服务器和客户端之间假设的一层服务器,代理将接收客户端的请求并将它转发给服务器,然后将服务端的响应转发给客户端。 正向代理是为我们服务的,即为客户端服务的,客户端可以根据正向代理访问到它本身无法访问到的服务器资源。 正向代理对我们是透明的,对服务端是非透明的,即服务端并不知道自己收到的是来自代理的访问还是来自真实客户端的访问。 1.2 反向代理 反向代理是为服务端服务的,反向代理可以帮助服务器接收来自客户端的请求,帮助服务器做请求转发,负载均衡等。 反
2020-05-24 10:39:44
3093
原创 VueCli3.0配置proxy解决跨域
[ 以下为开发环境跨域配置 ] 一、首先需要了解什么是跨域问题,网上资料说明的很清楚,这里给出链接 什么是跨域 二、需要理清楚proxy代理,如何代理? 看下官网解释: devServer.proxy Type: string | Object 如果你的前端应用和后端 API 服务器没有运行在同一个主机上,你需要在开发环境下将 API 请求代理到 API 服务器。这个问题可以通过 vue.config.js 中的 devServer.proxy 选项来配置。 devServer.proxy 可以是一个指
2020-05-20 09:43:31
3776
原创 webpack的path.resolve和path.join的区别
首先声明:记录学习过程中遇到的问题 小tips:path的join和resolve的使用区别 path.join最近在项目中的应用 function resolve(dir) { return path.join(__dirname, dir) } ------------------ configureWebpack: { resolve: { alias: { '@': resolve('src') } } }, ...
2020-05-12 15:47:19
730
原创 关于nth-child(n)与nth-of-type(n)的区别
先看下代码 <style> div span:nth-child(2){ color: greenyellow; } div span:nth-of-type(2){ color: red; } </style> <div> <span>我是第1</span>...
2020-03-19 14:17:28
193
原创 display:table与display:table-cell多行文字垂直居中
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style> .parsent{ width: 500px; height: 500px; background: yellow; ...
2019-08-25 18:30:19
238
原创 实现滚动到一定位置,导航栏固定到顶部且有动画
这个动画是用透明度做的,欢迎小伙伴们交流其他的做法哟 直接上代码, 但是感觉这个透明度变化还是有点不舒服,欢迎老哥们指点。 别忘了引用jq文件哦~~~~ <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style&g...
2019-08-06 09:32:29
903
转载 小程序通过background-image设置背景图片
微信小程序通过background-image设置背景:只支持线上图片和base64图片,不支持本地图片;base64图片设置步骤如下:1.在网站 点击进去转换哦 上将图片转成base64格式的文本 2.在WXSS中使用以上文本:background-image: url(“data:image/png;base64,iVBORw0KGgo=…”); 3.为了是背景图片自适应宽高,可以做如下设置:...
2019-08-02 12:26:44
724
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅