那就做个孩子吧
你怕长大吗? 可是小时候你是不是有常常幻想自己长大呢,做自己喜欢的事儿,不被管束;不用呆在父母身边……可是当你长大了你却又怀念小时候。但你总要历经长大。
长大了,你就必须懂得什么是责任,长大了,你就必须扛起父母肩上的担子。因为这世界太多不在乎或在乎。
小时候,希望自己快点长大,长大了,却发现遗失了童年;单身时,开始羡慕恋人的甜蜜,恋爱时,怀念单身时的自由。很多事物,没有得到时总觉得美好,得到之后才开始明白:我们得到的同时也是在失去。
越长大,时间越好像手中抓的紧紧的细沙,流逝的越快。为何总是如此疲惫,一个朝气蓬勃的少年难道还未曾绽放就要衰落了?
记得高中最后时期的你,满腔热血考大学,凌晨十二点一点睡觉第二天照样天不亮起床背书做题,不知疲惫,乐此不疲,因为算对一道数学大题而兴奋不已,因为画对一幅受力图做出物理大题激动不已,渐渐地,我都忘了那是什么样的感觉,用兴奋激动怕是也不能形容。
因为跑完十公里整个人都是虚脱、疲惫、无欲无求的时候,又觉得世界明朗了,即使天空是阴雨绵绵,即使有太多的不顺心不如意在心中 ...
实践问题记录
一、return true逻辑判断问题代理合并的时候增加校验,当被合并客户存在启用状态的开户信息时,就不允许合并。
1、获取被合并客户的详细信息(subInfo)
2、判断被合并用户是否有开户信息(customerOpenInfoBOS)
3、判断开户信息是否是已启用(activated)
15 offer收割机之Vue项目性能优化篇
前言Vue 框架通过数据双向绑定和虚拟 DOM 技术,帮我们处理了前端开发中最脏最累的 DOM 操作部分, 我们不再需要去考虑如何操作 DOM 以及如何最高效地操作 DOM;但 Vue 项目中仍然存在项目首屏优化、Webpack 编译配置优化等问题,所以我们仍然需要去关注 Vue 项目性能方面的优化,使项目具有更高效的性能、更好的用户体验。本文是作者通过实际项目的优化实践进行总结而来,希望读者读完本文,有一定的启发思考,从而对自己的项目进行优化起到帮助。本文内容分为以下三部分组成:
Vue 代码层面的优化;
webpack 配置层面的优化;
基础的 Web 技术层面的优化。
一、代码层面的优化1.1、v-if 和 v-show 区分使用场景
v-if 是 真正 的条件渲染,因为它会确保在切换过程中条件块内的事件监听器和子组件适当地被销毁和重建;也是惰性的:如果在初始渲染时条件为假,则什么也不做——直到条件第一次变为真时,才会开始渲染条件块。
v-show 就简单得多, 不管初始条件是什么,元素总是会被渲染,并且只是简单地基于 CSS 的 display 属性进行切换。
所以,v-if ...
14 offer收割机之Vue篇
Vue面试题推荐配合鲨鱼哥掘金文章-最全的Vue面试题 一起看一、Vue 基础1. Vue的基本原理当一个Vue实例创建时,Vue会遍历data中的属性,用 Object.defineProperty(vue3.0使用proxy )将它们转为 getter/setter,并且在内部追踪相关依赖,在属性被访问和修改时通知变化。 每个组件实例都有相应的 watcher 程序实例,它会在组件渲染的过程中把属性记录为依赖,之后当依赖项的setter被调用时,会通知watcher重新计算,从而致使它关联的组件得以更新。
2. 双向数据绑定的原理Vue.js 是采用数据劫持结合发布者-订阅者模式的方式,通过Object.defineProperty()来劫持各个属性的setter,getter,在数据变动时发布消息给订阅者,触发相应的监听回调。主要分为以下几个步骤:
需要observe的数据对象进行递归遍历,包括子属性对象的属性,都加上setter和getter这样的话,给这个对象的某个值赋值,就会触发setter,那么就能监听到了数据变化
compile解析模板指令,将模板中的变量替换成数 ...
13 offer收割机之LeetCode面试常考题
这个校招同学建议去刷牛客网高频面试题 以及字节笔试题 群公告有
序号
题号
题目
难度
频度
题解
1
206
反转链表
容易
96
题解
2
215
数组中的第K个最大元素
中等
85
题解
3
3
无重复字符的最长子串
中等
71
题解
4
25
K 个一组翻转链表
困难
58
题解
5
146
LRU缓存机制
中等
56
6
15
三数之和
中等
52
题解
7
121
买卖股票的最佳时机
容易
46
题解
8
1
两数之和
容易
44
题解
9
142
环形链表 II
中等
40
题解
10
94
二叉树的中序遍历
中等
34
题解
11
102
二叉树的层序遍历
中等
34
题解
12
236
二叉树的最近公共祖先
中等
31
题解
13
103
二叉树的锯齿形层次遍历
中等
30
题解
14
199
二叉树的右视图
中等
28
题解
15
415
字符串相加
容易
27
题解
16
160
相交链表
容易
26
题解
17
21
合并两个有序链表
容易
26
题解
18
200
岛屿数量
中等
...
12 offer收割机之代码输出篇
建议有时间或者校招要做笔试的同学看下 社招基本只需要看看事件循环的题目前言:代码输出结果也是面试中常考的题目,一段代码中可能涉及到很多的知识点,这就考察到了应聘者的基础能力。在前端面试中,常考的代码输出问题主要涉及到以下知识点:异步编程、事件循环、this指向、作用域、变量提升、闭包、原型、继承等,这些知识点往往不是单独出现的,而是在同一段代码中包含多个知识点。所以,笔者将这些问题大致分为四类进行讨论。这里不会系统的阐述基础知识,而是通过面试例题的形式,来讲述每个题目的知识点以及代码的执行过程。如果会了这些例题,在前端面试中多数代码输出问题就可以轻而易举的解决了。
注:本文中所有例题收集自牛客网面经、网络博文等,如果侵权,请联系删除!
一、异步&事件循环1. 代码输出结果12345678const promise = new Promise((resolve, reject) => { console.log(1); console.log(2);});promise.then(() => { con ...
11 offer收割机之手写代码篇
##手写系列建议配合鲨鱼哥的掘金手写面试题文章一起看(更多更全)
一、JavaScript 基础1. 手写 Object.create思路:将传入的对象作为原型
12345function create(obj) { function F() {} F.prototype = obj return new F()}
2. 手写 instanceof 方法instanceof 运算符用于判断构造函数的 prototype 属性是否出现在对象的原型链中的任何位置。
实现步骤:
首先获取类型的原型
然后获得对象的原型
然后一直循环判断对象的原型是否等于类型的原型,直到对象原型为 null,因为原型链最终为 null
具体实现:
123456789101112function myInstanceof(left, right) { let proto = Object.getPrototypeOf(left), // 获取对象的原型 prototype = right. ...
What's Babel?
babel1、babel是什么
2、preset是什么?
包含着一组预先设定的插件,而不是逐一添加我们想要的所有插件,使用的时候也是以数组的形式进行组合。
eg: preset-env
12npm install --save-dev @babel/preset-env(该预设除了包含所有稳定的转码插件,还可以根据我们设定的目标环境进行针对性转码。除了进行语法转换,该预设还可以通过设置参数项进行针对性语法转换以及polyfill的部分引入。)
123456789101112{ "presets": ["@babel/preset-env"], "plugins": []}{ "presets": [["@babel/preset-env",{}]], "plugins": []}{ "presets": [["@babel/preset-env"] ...
10 offer收割机之浏览器原理篇
一、浏览器安全1. 什么是 XSS 攻击?(1)概念XSS 攻击指的是跨站脚本攻击,是一种代码注入攻击。攻击者通过在网站注入恶意脚本,使之在用户的浏览器上运行,从而盗取用户的信息如 cookie 等。
XSS 的本质是因为网站没有对恶意代码进行过滤,与正常的代码混合在一起了,浏览器没有办法分辨哪些脚本是可信的,从而导致了恶意代码的执行。
攻击者可以通过这种攻击方式可以进行以下操作:
获取页面的数据,如DOM、cookie、localStorage;
DOS攻击,发送合理请求,占用服务器资源,从而使用户无法访问服务器;
破坏页面结构;
流量劫持(将链接指向某网站);
(2)攻击类型XSS 可以分为存储型、反射型和 DOM 型:
存储型指的是恶意脚本会存储在目标服务器上,当浏览器请求数据时,脚本从服务器传回并执行。
反射型指的是攻击者诱导用户访问一个带有恶意代码的 URL 后,服务器端接收数据后处理,然后把带有恶意代码的数据发送到浏览器端,浏览器端解析这段带有 XSS 代码的数据后当做脚本执行,最终完成 XSS 攻击。
DOM 型指的通过修改页面的 DOM 节点形成的 XSS。 ...
9 offer收割机之计算机网络篇
一、HTTP协议1. GET和POST的请求的区别Post 和 Get 是 HTTP 请求的两种方法,其区别如下:
应用场景:GET 请求是一个幂等的请求,一般 Get 请求用于对服务器资源不会产生影响的场景,比如说请求一个网页的资源。而 Post 不是一个幂等的请求,一般用于对服务器资源会产生影响的情景,比如注册用户这一类的操作。
是否缓存:因为两者应用场景不同,浏览器一般会对 Get 请求缓存,但很少对 Post 请求缓存。
发送的报文格式:Get 请求的报文中实体部分为空,Post 请求的报文中实体部分一般为向服务器发送的数据。
安全性:Get 请求可以将请求的参数放入 url 中向服务器发送,这样的做法相对于 Post 请求来说是不太安全的,因为请求的 url 会被保留在历史记录中。
请求长度:浏览器由于对 url 长度的限制,所以会影响 get 请求发送数据时的长度。这个限制是浏览器规定的,并不是 RFC 规定的。
参数类型:post 的参数传递支持更多的数据类型。
2. POST和PUT请求的区别
PUT请求是向服务器端发送数据,从而修改数据的内容,但是不会增加数据的 ...