自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 热乎乎的美团前端面经(2020.12.28)

js 中 this指向问题:var a = 1;var b = { c: function () { console.log(this.a); }, d: () => { console.log(this.a); }};b.d.bind({ a: 2});var fun = b.c;fun();b.c();b.d();第一个func应该是隐式类型绑定,this指向window,window.func().

2020-12-29 11:03:51 430 8

原创 林园炒股秘籍

理解要执行,不理解也要执行,在理解中执行,否则断胳膊断腿。行业 :有未来前景的行业;中药、消费、银行、保险。对于优质稀缺的资源,你能拥有就不错了。我赚钱的秘籍就是行业+垄断+成瘾。投资股市的本质就是买公司。...

2022-08-28 16:32:23 1239 1

原创 前端与图形学(上)

引言-计算机图形的应用和研究图形 :图形是人类传达知识、表达情感的重要手段,它通常指能在人在视觉系统中产生视觉印象的客观对象。抽象=》具体计算机图形( Computer graphics(CG): ):计算机图形学中所研究的图形是指能够通过计算机加以表示;WIkpedia: How to represent graphics in computer, compute, processing and display of grafic (如何去表示图形,图元)图形学工程师的范畴0.1 计算机图形.

2022-04-25 08:42:48 881

原创 房屋提前还款会吃亏吗?

针对买房的小朋友通常有两种还款方式:等额本息 2. 等额本金一. 房屋贷款2. 利率 6%每年 0.5% 月3. 贷款12万元 1年还清 12期等额本金4. 本金: 12w / 12 = 1w5. 利息:12 * 0.5% = 600011 * 0.5% = 5500…1 * 0.5% = 506000 + 5500 + … + 50 = 325 * 12 = 3900等额本息a0 a1 a2 a12 = 0;每月还款额:A (本金+利息)a0 = 12wa12

2022-04-24 22:25:30 189

原创 2022.3.15面试

关于笔试题的回答;2.如何获取页面中出现次数最多的3个元素dom事件流三阶段:target和currentTarget区别 重排和重绘ES6语法:let const varset mapclasspromsie:三种状态 方法;all 是并行还是串行,promise如何实现串行执行 【没答上来】racereact生命周期 执行顺序 [基本正确]componentWillReceiveProps getDerivedStateFromPropsSCU优化跨组件之间如何进行通信 r.

2022-03-15 19:30:54 1300

原创 2021.11- 2022.5 学习计划

antd/fusion源码学习计划 (自己录制视频-每周一期) => 学习做自媒体/学习如何剪辑winter前端进阶训练营webpack + node + vue3 + ts (codewhy)

2021-10-17 16:33:11 81

原创 科里化

function sum(...args) { const f = (...rest) => { return sum(...[...args, ...rest]); } f.valueOf = () => { return args.reduce((x, y) => x + y, 0); } return f;}sum(1,2,3).valueOf(); // 6;sum(2,3)(2).valueOf(); // 7

2021-05-25 16:52:23 72

原创 找个页面中出现次数最多的三个标签

let arr = Object.entires([...document.getElementByTagName('*')].map(v => v.tagName).reduce((obj, a)=> { obj[a] = obj[a] ? obj[a] + 1 : 1; return obj;}, {}));arr.sort((a,b) => b[1] - a[1]);console.table(arr.slice(0,2))

2021-05-25 14:44:21 156

原创 小程序学习

小程序中样式的写法:小程序的git仓库地址: https://github.com/wechat-miniprogram/miniprogram-demo.gitwxss:1. 行内样式(内联样式)// 2. 页内样式 // 3. 全局样式作用域是不太一样的,如果三个样式作用于同一个组件时候,class=‘content’,行内样式 > 页面样式 > 全局样式前端适配:rpx;=> 移动端适配方案;1px = 2rpx可以根据屏幕进行自适应@import 进行导入官.

2021-05-01 15:16:59 107 1

原创 eventBus类

class EventEmitter { constructor(max) { this.events = {}; this.maxListeners = max || Infinity; } // 绑定事件; emit(event, ...args){ const cbs = this.events[event]; if (!cbs){ console.log("没有这个事件"); .

2021-03-22 10:53:03 105

原创 腾讯面试

找出字符串中最长的有效单词长度const str = “abc adfd aa0aa afd”// 输出结果为:4注意:单词的组成是大小写连续字符串考察点:正则、数组的函数、箭头函数const maxLenWords = (str) => { //let strArr = ; const newArr = str.split(" ").filter(word => { return (/^[A-Za-z]+$/).test(word) }).map(item =&g.

2021-03-04 17:02:20 135 1

原创 react组件通信方式汇总

父组件向子组件通信父组件更新组件状态,通过props传递给子组件,子组件得到后进行更新。<Timer order={order} /> // 倒计时组件在子组件里直接通过props获取父组件传递过来的参数let order = this.props.order; // 订单详情子组件向父组件通信子组件更新状态,通过回调函数的方式传递给父组件子组件调用父组件通过props传给它的函数更新父组件state,进而完成子组件向父组件的通讯。import React, { Com.

2021-02-05 18:17:46 129

原创 js词法解析

执行过程执行上下文的代码会分成两个阶段进行处理:分析和执行,我们也可以叫做:进入执行上下文代码执行进入执行上下文当进入执行上下文时,这时候还没有执行代码,变量对象会包括:函数的所有形参 (如果是函数上下文)由名称和对应值组成的一个变量对象的属性被创建没有实参,属性值设为 undefined函数声明由名称和对应值(函数对象(function-object))组成一个变量对象的属性被创建如果变量对象已经存在相同名称的属性,则完全替换这个属性变量声明由名称和对应值(undefined)

2021-01-24 11:12:16 94

原创 手动封装一个Promise

本章来自己开发一个Promise实现,提升异步编程的能力。首先声明定义类并声明Promise状态与值,有以下几个细节需要注意。executor为执行者当执行者出现异常时触发拒绝状态使用静态属性保存状态值状态只能改变一次,所以在resolve与reject添加条件判断因为 resolve或rejected方法在executor中调用,作用域也是executor作用域,这会造成this指向window,现在我们使用的是class定义,this为undefined。class HD {

2021-01-24 10:45:55 216

原创 Promise封装ajax

// Promise 封装 ajaxfunction fetch(method, url, data){ return new Promise((resolve, reject) => { var xhr = new XMLHttpRequest(); var method = method || "GET"; var data = data || null; xhr.open(method, url, true);

2021-01-23 23:58:35 58

原创 封装一个promise类

class HD { static PENDING = "pending"; static FULFILLED = "fulfilled"; static REJECTED = "rejected"; constructor(executor) { this.status = HD.PENDING; this.value = null; this.callbacks = []; try { executor(this.

2021-01-23 23:46:51 122

原创 实现es6 extend

function B(name){ this.name = name;};function A(name,age){ //1.将A的原型指向B _extends(A,B); //2.用A的实例作为this调用B,得到继承B之后的实例,这一步相当于调用super Object.getPrototypeOf(A).call(this, name) //3.将A原有的属性添加到新实例上 this.age = age; //4.返回新实例对象 return this;};

2021-01-23 21:49:40 576

原创 css实现一个两栏布局:左定中间自适应

Document stable 固定宽度200px changeable 可变宽度

2021-01-19 15:39:00 99

原创 leetcode汇总区间

汇总区间给定一个无重复元素的有序整数数组 nums 。返回 恰好覆盖数组中所有数字 的 最小有序 区间范围列表。也就是说,nums 的每个元素都恰好被某个区间范围所覆盖,并且不存在属于某个范围但不属于 nums 的数字 x 。列表中的每个区间范围 [a,b] 应该按如下格式输出:“a->b” ,如果 a != b“a” ,如果 a == b示例 1:输入:nums = [0,1,2,4,5,7]输出:[“0->2”,“4->5”,“7”]解释:区间范围是:[0,2].

2021-01-10 09:46:51 137

原创 最小覆盖子串(hard级别)

给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 “” 。注意:如果 s 中存在这样的子串,我们保证它是唯一的答案。示例 1:输入:s = “ADOBECODEBANC”, t = “ABC”输出:“BANC”示例 2:输入:s = “a”, t = “a”输出:“a”提示:1 <= s.length, t.length <= 105s 和 t 由英文字母组成来源:力扣(LeetCo

2021-01-05 11:46:23 180

原创 java如何构建一颗二叉排序树

第一个版本: (非递归方法)https://blog.csdn.net/zhenzuo_x/article/details/87968492第二个版本: (递归方法)class BinaryTree { private Node root; // 添加节点的方法 public void add(Node node) { if(root == null){ root = node; // 如果root为空则直接让root指向node } e.

2021-01-05 10:45:29 286

原创 js时间格式化函数formatDate(RegExp)

((‘00’ + o[k]).substr((’’ + o[k]).length))) 这个地方真的巧妙。欢迎关注微信公众号(大明前端)export function formatDate(date, fmt) { if (typeof date == 'string') { return date; } if (!fmt) fmt = "yyyy-MM-dd hh:mm:ss"; if (!date || date == null) return null; let o

2021-01-05 09:47:04 498

原创 async和defer

先来试个一句话解释仨,当浏览器碰到 script 脚本的时候:没有 defer 或 async,浏览器会立即加载并执行指定的脚本,“立即”指的是在渲染该 script 标签之下的文档元素之前,也就是说不等待后续载入的文档元素,读到就加载并执行。有 async,加载和渲染后续文档元素的过程将和 script.js 的加载与执行并行进行(异步)。有 defer,加载后续文档元素的过程将和 script.js 的加载并行进行(异步),但是 script.js 的执行要在所有元素解析完成之后,DOMCo

2021-01-05 09:21:05 86

原创 合并K个排序链表

给你一个链表数组,每个链表都已经按升序排列。请你将所有链表合并到一个升序链表中,返回合并后的链表。输入:lists = [[1,4,5],[1,3,4],[2,6]]输出:[1,1,2,3,4,4,5,6]解释:链表数组如下:[1->4->5,1->3->4,2->6]将它们合并到一个有序链表中得到。1->1->2->3->4->4->5->6来源:力扣(LeetCode)链接:https://leetcode

2021-01-05 09:03:13 60

原创 float,BFC

在这里插入图片描述graph TD;A-->B;B-->C;![在这里插入图片描述](https://img-blog.csdnimg.cn/20210105083407839.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NpbmF0XzM2MDQ4NTMy,size_16,color_FFFFFF,t_70)...

2021-01-05 08:35:21 60

原创 热乎的字节跳动飞书一面二面:

两面面经放在一起拉,大家加油哦,如果觉得有用的话可以帮我点个赞啦!!!ES6 语法:说一下react和vue在状态更新,组件间通信,DOM渲染的异同,这个要对这两个框架都很熟悉,这个我没答好,给大家推荐一篇文章哈哈哈。https://blog.csdn.net/Tokki_/article/details/90726563?ops_request_misc=%25257B%252522request%25255Fid%252522%25253A%252522160976102016780299

2021-01-04 23:22:08 1016 1

原创 generator函数的使用

// generator// 1. 普通函数function foo() { console.log("foo被执行");}// foo()// 2. 生成器函数function* foo() { console.log("111"); yield "Hello"; console.log("222"); yield "World"; console.log("333"); yield "codewhy";}// iterator: 迭代器const res

2021-01-04 22:48:29 122

原创 一个算法问题尚未解决(Leetcode 5643)

我们称一个分割整数数组的方案是 好的 ,当它满足:数组被分成三个 非空 连续子数组,从左至右分别命名为 left , mid , right 。left 中元素和小于等于 mid 中元素和,mid 中元素和小于等于 right 中元素和。给你一个 非负 整数数组 nums ,请你返回 好的 分割 nums 方案数目。由于答案

2021-01-03 16:44:08 148

原创 Leetcode算法周赛-双指针,三指针操作

将数组分成三个子数组的方案数我们称一个分割整数数组的方案是 好的 ,当它满足:数组被分成三个 非空 连续子数组,从左至右分别命名为 left , mid , right 。left 中元素和小于等于 mid 中元素和,mid 中元素和小于等于 right 中元素和。给你一个 非负 整数数组 nums ,请你返回 好的 分割 nums 方案数目。由于答案可能会很大,请你将结果对 109 + 7 取余后返回。示例 1:输入:nums = [1,1,1]输出:1解释:唯一一种好的分割方案是将 .

2021-01-03 16:34:20 205

原创 Leetcode算法周赛之两数之和进阶版(加油加油啦,欢迎大家关注我的微信公众号: 大明前端)

大餐计数大餐 是指 恰好包含两道不同餐品 的一餐,其美味程度之和等于 2 的幂。你可以搭配 任意 两道餐品做一顿大餐。给你一个整数数组 deliciousness ,其中 deliciousness[i] 是第 i​​​​​​​​​​​​​​ 道餐品的美味程度,返回你可以用数组中的餐品做出的不同 大餐 的数量。结果需要对 109 + 7 取余。注意,只要餐品下标不同,就可以认为是不同的餐品,即便它们的美味程度相同。示例 1:输入:deliciousness = [1,3,5,7,9]输出:.

2021-01-03 15:35:38 198

原创 区间调度问题(贪心算法)

给定一个区间的集合,找到需要移除区间的最小数量,使剩余区间互不重叠。注意:可以认为区间的终点总是大于它的起点。区间 [1,2] 和 [2,3] 的边界相互“接触”,但没有相互重叠。示例 1:输入: [ [1,2], [2,3], [3,4], [1,3] ]输出: 1解释: 移除 [1,3] 后,剩下的区间没有重叠来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/non-overlapping-intervals著作权归领扣网络所有。商

2020-12-31 08:37:11 626

原创 字节跳动面试(第三次面试)总结1:

面试总结:非计算机专业,没有项目经验,重点考察理论/逻辑基础:大体了解,但细节和关键点知识有所欠缺(3分一下是没回答好的)3- 前端:了解一些基础知识,但是实践缺乏3- 性格:主动性好,善于表现自己3 逻辑思维/代码:一般,遇到困难的地方容易表现混乱3- 整体评价:主动好学,有一定自学成果,但缺乏实践机会,逻辑和代码表现一般,建议二面考察下可培养价值3 1. 基础 - 连接过程,握手 –3 - 报文格式,常见 Header – 不太清楚2.5 - 缓存原理 –3 2. JS - 封装队列,

2020-12-31 08:03:45 1295

原创 大数相乘解决方案(面试常考!!!一定要掌握)

// 模拟竖式乘法 public String multiply(String num1, String num2) { if(num1.equals("0") || num2.equals("0")){ return "0"; } int len1 = num1.length(); int len2 = num2.length(); int[] ansArr = new int[len1 + len

2020-12-30 16:45:22 107 1

原创 最长公共子序列(动态规划)

public static int getLCS(String s1, String s2) { char[] ch1 = s1.toCharArray(); char[] ch2 = s2.toCharArray(); int[][] dp = new int[ch1.length+1][ch2.length+1]; //int max = 0; //int right = 0; for(int i = 1;

2020-12-30 16:18:09 47

原创 最长公共子串(动态规划)

public static String getLCS(String s1, String s2) { char[] ch1 = s1.toCharArray(); char[] ch2 = s2.toCharArray(); int[][] dp = new int[ch1.length+1][ch2.length+1]; int max = 0; int right = 0; for(int i = 1;

2020-12-30 16:10:39 153

原创 字节跳动面试总结2

前端基础304缓存:正确,了解强缓存和协商缓存3 计算机基础 1. https加密过程:说出了一部分,但概念偏死记硬背,没有自己的理解。https ssl加密过程解析:如何理解:http是超文本传输协议,在网络传输的过程中可能被第三方监听。所以在传输的过程中需要加密。第一种方式:对称加密,即只有一把钥匙进行加密和解密。这个时候会存在一个问题,如果把加密后的密文和秘钥放在一起在网络中传输的情况下,截获者拿到秘钥之后同样也可以对我们的数据进行解密,这个时候达不到保护数据的预期了,很显然在网络中只能

2020-12-30 15:26:02 142

原创 存在重复元素

var containsDuplicate = function(nums) { const set = new Set(); for(let i = 0; i<nums.length; i++){ if(set.has(nums[i])){ return true; } set.add(nums[i]); } return false;}

2020-12-30 14:56:33 95 1

原创 无重复字符的最长子串

class Solution { Map<Character, Integer> map = new HashMap<Character, Integer>(); int left = 0; int right = 0; int maxLen = 0; while(right < s.length()) { char c = s.charAt(right); map.put(c, map.getOrDefault(c,0)

2020-12-30 14:29:21 56 1

原创 面试算法题:乘积最大子序列

乘积最大子序列:输入:[2,3,-2,4]输出:6子数组:[2, 3] 有最大乘积6.var maxProduct = function(nums) { const maxProductMemo = []; const minProductMemo = []; maxProductMemo[0] = nums[0]; minProductMemo[0] = nums[0]; let max = nums[0]; for(let i = 1; i<nu

2020-12-30 14:07:53 77

原创 字节跳动面试题(封装一个队列)

function ArrayQueue(){ var arr = []; //入队操作 this.push = function(element){ arr.push(element); return true; } //出队操作 this.pop = function(){ return arr.shift(); } //获取队

2020-12-30 13:36:45 66

空空如也

空空如也

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

TA关注的人

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