wegotime
wegotime 2022/5/27自我介绍下
大学生活里
大一
先明确自己打算保研的或者其他的
几个不同大方向
就业:互联网、国企、外企、银行、游戏、传统行业
考公考编考选调
考研保研
创业
回家继承家产
可以去学习各方面的知识,能越早确定方向越好
html、css、js的学习
c语言
大二
根据自己学到的技术可以去参加比赛,能拿奖最好,起码要有实践和锻炼
前端框架的学习,三大框架(React、Vue、Angular),nodejs(koa、express)
可以考虑日常实习
大三
要对自己选择的方向进行更细致的学习研究,做项目
可以在github上寻找感兴趣的能参与的开源项目
编译原理、计算机网络、操作系统、数据结构与算法
要找工作的话,最好大三下参加春招找暑假实习。牛客网,剑指offer,力扣
面向面经的学习方法
关于考试
大学里的除了保研人以外,大多时候关于考试的事情都是可以在最后的复习(学习)时间里对着老师勾画的复习知识点背,背会就考过的,不过平时分别落下就好
本科阶段学校教更多的是打基础的,培养编程思维那种,要实用或者说是未来工作用到的还是得靠自学
...
Vue相关原理
vue2响应式
在init数据初始化的时候,对象内部通过 defineReactive 方法,使用 Object.defineProperty 将属性进行劫持(这时候只会劫持已经存在的属性)。如果数据是数组类型, Vue2中是通过重写数组方法来实现。多层对象是通过递归来实现劫持的。
在初始化流程中的编译阶段,当render function 被渲染的时候,会读取Vue实例中和视图相关的响应式数据,此时会触发 getter 函数进行 依赖收集(将观察者Watcher对象存放到当前闭包的订阅者Dep的subs中),此时的数据劫持功能和观察者模式就实现了一个MVVM模式中的Binder,之后就是正常的渲染和更新流程。
当数据发生变化或者视图导致的数据发生变化时,会触发数据劫持的setter函数,setter会通知初始化依赖收集中的Dep中和视图相应的 Watcher ,告知需要重新渲染视图,Watcher 就会再次通过 update 方法来更新视图。
vue的组件通信
props/$emit
$emit/$on(eventbus)
vuex (单向数据流、state存放数据,mutatio ...
js的继承
js的继承1234567891011function Parent() { this.name = 'hh'}Parent.prototype.getname = function () { console.log(this.name);}function Child() { }
原型链继承12345Child.prototype = new Parent();let child1 = new Child();// 就是创建一个子构造函数原型上继承new一个父构造函数,再用子构造函数构建一个对象
优点:方法复用,
缺点:属性共用
构造函数继承1234567function Child() { // 当使用这个构造函数创建实例的时候,prototype属性指向的原型对象就成为实例的原型对象 Parent.call(this);}// 等于复制父元素的基本属性给子元素let child1 = new Child();
优点:实例属性相互独立,
缺点:父类方法不能复用,继承不了 ...
手写链表
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889// 构造一个节点class Node { constructor(v, next){ this.value = v; this.next = next; }} class LinkList { constructor(){ // 链表的属性,长度和头部 this.size = 0 this.head = new Node(null, null) } // 是否为空 isEmpty() { return this.size === 0 } // 获取长度 getSize() { ret ...
秋招笔记-2
幽灵节点因为行内块状元素默认是以文字的基线对齐的造成的,
line-height和vertical-align都与基线有关。line-height行高定义是两个基线之间的距离,vertical-align的默认值是baseline就是基线对齐
解决方法:修改line-height大小
123<div class="con"> <img src="../img/jiaoyue.png" /><span>I am very good</span></div>
12345678.con{ border:1px solid red; font-size: 0; line-height: 0;}.con span{ font-size: 16px;}
2、修改vertical-align对齐方式
1234567891011.con{ border:1px solid red;}.con span ...
秋招笔记-1
URLURL (Uniform Resource Locator)中译:统一资源定位符(其实就是网址)
语法规则
1scheme://host.domain:port/path/filename
1:scheme - 定义网络服务的类型. 比如:https2:host - 定义域主机(http默认主机 www)3:domain - 定义域名,比如 baidu.com4:port -定义主机上的端口号(http默认是 80)5:path - 定义服务器路径(如果省略,文档必须在网站根目录下)6:filename - 定义文档/资源的名称
css相关css解析顺序从上到下,从右到左。如果是这样的一个结构,浏览器会从右向左开始解析。因为一般来说,最右侧的节点范围反而会比较大,越向左限定的条件就越多。也因此 CSS 的选择器设计上不宜嵌套过多,会带来性能上的问题。
字符串转驼峰123456789// 转化为驼峰命名function toHump(str) { let reg = /-(\w)/g; return str.repla ...
koa学习
koa_router的使用123456789101112131415161718192021222324// 引入koa模块const Koa = require('koa');const router = require('koa-router')(); // 这个直接引入的实例化路由// const router = require('koa-router');// const router = new router();const app = new Koa();app.use(async ctx => { ctx.body = 'Hello World';});router.get("/", async(ctx) => { ctx.body = "首页";})app.use(router.routes()); // 启动路由app.use(router.allwedMethods()); // 可加可不加 ...
面试笔记-3
Computed 和 watch区别计算属性computed :
支持缓存,只有依赖数据发生改变,才会重新进行计算,数据不用在data中定义好,在这里面定义了会缓存起来
不支持异步,当computed内有异步操作时无效,无法监听数据的变化
computed 属性值会默认走缓存,计算属性是基于它们的响应式依赖进行缓存的,也就是基于data中声明过或者父组件传递的props中的数据通过计算得到的值
如果一个属性是由其他属性计算而来的,这个属性依赖其他属性,是一个多对一或者一对一,一般用computed
如果computed属性属性值是函数,那么默认会走get方法;函数的返回值就是属性的属性值;在computed中的,属性都有一个get和一个set方法,当数据变化时,调用set方法。
侦听属性watch:
不支持缓存,数据变,直接会触发相应的操作;
watch支持异步;
监听的函数接收两个参数,第一个参数是最新的值;第二个参数是输入之前的值;
监听数据必须是data中声明过或者父组件传递过来的props中的数据,当一个属性发生变化时,需要执行对应的操作;一对多;
监 ...
node.js学习
http、url模块12345678910111213141516171819202122232425262728293031323334// 引用http模块const http = require('http');/** * request 获取客户端传过来的信息 * response 给浏览器响应信息 */http.createServer( (req, res) => { //http://127.0.0.1?name=zhangsan&age=20 想获取url传过来的name 和age // 响应头 // 状态码200,文件类型是html,字符集utf-8 res.writeHead(200, {'Content-Type': "text/html;charset='utf-8'"}); res.write("<head><meta charset='UTF-8'></head ...
网络方面
三次握手
第一次握手:主机A发送位码为syn=1,随机产生seq number= X 的数据包到服务器,主机B由A发送的SYN=1知道,A要求建立联机;
第二次握手:主机B收到请求后要确认联机信息,向A发送ack number=(主机A的seq+1),syn=1,ack=1,随机产生seq=Y的包;
第三次握手:主机A收到后检查ack number是否正确,即第一次发送的seq number+1,以及位码ack是否为1,若正确,主机A会再发送ack number=(主机B的seq+1),ack=1,主机B收到后确认收到的seq值与发送给A的seq+1是否相等和ack是否为1来判断连接是否建立成功。
SYN(synchronous建立联机)
ACK(acknowledgement 确认)
PSH(push传送)
FIN(finish结束)
RST(reset重置)
URG(urgent紧急)
Sequence number(顺序号码)
Acknowledge number(确认号码)
为什么要三次
三次握手才可以阻止重复历史连接的初始化(主要原因)
三次握手才可以同步双 ...