git版本回退
git版本回退
git reset
用于本地未推送的更改,适用于需要彻底丢弃一些更改并清除提交历史的场景。
git revert
适用于已经推送的更改,需要撤销某个特定提交但保持提交历史完整的场景。
查看提交历史,找到要撤销的提交哈希 git log –oneline
反转指定的提交 git revert f8e0abd
推送更改到远程仓库 git push origin main
深拷贝与浅拷贝
深拷贝与浅拷贝深拷贝递归复制对象或数组的所有内容,包括嵌套的对象和数组。改变复制后的对象或数组不会影响到原对象或数组。
JSON
const arr = [{ a: 1 }, { b: 2 }];const deepCopy = JSON.parse(JSON.stringify(arr));
不能拷贝函数,不能拷贝特殊值
lodash
const _ = require('lodash');const arr = [{ a: 1 }, { b: 2 }];const deepCopy = _.cloneDeep(arr);
手写深拷贝
function deepClone(obj) { if (obj == null) return null; if (obj instanceof RegExp) return new RegExp(obj); if (obj instanceof Date) return new Date(obj); if ...
call、apply、bind
call、apply、bind区别
call
调用函数并立即执行,逐个传递参数
function greet(greeting, punctuation) {console.log(greeting + ', ' + this.name + punctuation);}
const person = { name: 'Alice' };
greet.call(person, 'Hello', '!'); // 输出: Hello, Alice!
apply
调用函数并立即执行,以数组形式传递参数
function greet(greeting, punctuation) {console.log(greeting + ', ' + this.name + punctuation);}
const person = { name: 'Alice' };
greet.apply(person, [' ...
paicoding
AOP
前端面经
基础小DEMO
无题
总结输出语句#include<bits/stdc++.h>
printf("%.2f",a*b/10.0);
getline(cin,s);
printf("%5d",i);
指定要打印的参数类型为整数,并指定字段宽度为5个字符。
scanf("%d:%d",&a,&b);
%5d:这表示打印一个整数,并且至少占据5个字符的宽度。如果整数的位数不足5位,则在左侧用空格填充。
%-5d:这也是打印一个整数,但是加了一个减号表示左对齐,至少占据5个字符的宽度。如果整数的位数不足5位,则在右侧用空格填充。
%05d:这表示打印一个整数,并且至少占据5个字符的宽度。如果整数的位数不足5位,则在左侧用0填充。
%.2f:这表示打印一个浮点数,保留两位小数。如果小数位数不足两位,则用0填充。
%.0f:这也是打印一个浮点数,但是.0f表示不保留小数,即四舍五入到整数。
isupper函数用于检测字符是否为大写字母,如果是大写字母则返回非零值,否则返回0。
islower函数用于检测字符是否为小 ...
数据库
复习题考试大纲
课本题P34试述数据库系统的特点。
答案太多,需要精简
数据库管理系统的主要功能有哪些?
P155什么是数据库的审计功能,为什么要提供审计功能?
P241试述数据库设计过程。
数据字典的内容和作用是什么?
P305叙述事务的概念及事务的 4 个特性
P306针对不同的故障,试给出恢复的策略和方法。(即如何进行事务故障的恢复,如何进行系统故障的恢复,以及如何进行介质故障的恢复。)
P326什么是封锁?基本的封锁类型有几种?试述它们的含义。
实验题
最后:感谢 wjk,yfm,aq,xyh 的贡献。
前端前言
基础碎碎念技术面,侧重点是什么?
一面,注重基础,很细的点,一面面试官一般是组长,项目负责人级别
二面,注重架构,全局观,知识上都是范围伤害,当然答的时候也得全局答,二面面试官一般是总监,总经理级别
1.2 准备思路想找工作,但是不知道从哪里开始?
目前,我有两年多的工作经验,还不到三年。曾和一些前辈及大厂面试官交流过。两年的经验可能达到P5的水平,但需要满足以下几点:首先,基本功要非常扎实;其次,对框架的使用要非常熟练;最后,对Webpack有一些了解会更好。可以从以下四个方向进行准备:
JavaScript:
JS是前端的基础,必须扎实掌握:原型链、继承、事件循环、事件委托等。
ES6中常用的语法:Promise、localStorage的区别、Set、Map等。
框架:
选择一个主框架,如React:熟练使用常用API,最好了解这些API的实现原理,有的面试官会要求手写代码。
读一些源码,了解框架的底层实现。
项目:
思考自己遇到过哪些难点,有哪些亮点。
计算机网络与性能优化:
完成以上三点后,了解一些计算机网络的知识,例如:输入一个URL后发生了什么? ...
蓝桥杯-刷题
刷题// 全排列#include <iostream>#include <string>#include <algorithm>using namespace std;const int N = 1e5 + 10;int a[N], b[N], c[N];int n;bool st[N];void dfs(int k) { if (k > n) { for (int i = 1; i <= n; i++) cout << a[i] << " "; cout << endl; return; } for (int i = 1; i <= n; i++) { if (!st[i]) { a[k] = i; st[i] = true; dfs(k + 1); ...