其他问题
1.项目里遇到的困难和解决方法
2.react常用的API使用
3.vue 和 react 渲染的区别
4.webpack loader plugin
5.vdom
6.浏览器缓存
7.ref的用途
8.useMemo useCallback的用途
手写题
1. 按要求写出对应的hook
2.计算时钟分针和时针的角度
let now = new Date();
let hours = now.getHours();
let minutes = now.getMinutes();
let hourAngle = (hours % 12 + minutes / 60) * 30;
let minuteAngle = minutes * 6;
hourAngle = (hourAngle + 90) % 360;
minuteAngle = (minuteAngle + 90) % 360;
return {
hourAngle: hourAngle,
minuteAngle: minuteAngle
};
}
let angles = getClockAngles();
console.log("Hour Angle: " + angles.hourAngle);
console.log("Minute Angle: " + angles.minuteAngle);
3.字符串大小写取反
let reversed = '';
for (let i = 0; i < str.length; i++) {
const char = str[i];
if (char === char.toUpperCase()) {
reversed += char.toLowerCase();
} else if (char === char.toLowerCase()) {
reversed += char.toUpperCase();
} else {
reversed += char;
}
}
return reversed;
}
4.生成一千个不重复的四位验证码
let codes = [];
// 生成随机四位数的函数
function generateRandomCode() {
let code = Math.floor(1000 + Math.random() * 9000);
return code.toString().padStart(4, '0');
}
while (codes.length < count) {
let newCode = generateRandomCode();
if (!codes.includes(newCode)) {
codes.push(newCode);
}
}
return codes;
}
5.给一个字符串 提取出需要的信息
const userInfo = {};
const parts = userInfoString.split(' ');
for (let i = 0; i < parts.length; i++) {
const part = parts[i];
if (part.startsWith('Name:')) {
userInfo.name = part.substring('Name:'.length);
} else if (part.startsWith('Age:')) {
userInfo.age = parseInt(part.substring('Age:'.length), 10);
} else if (part.startsWith('City:')) {
userInfo.city = part.substring('City:'.length);
}
}
return userInfo;
}
6.找出字符串中连续出现最多的字符和个数
if (!str || str.length === 0) {
return { char: '', count: 0 };
}
let maxChar = str[0];
let maxCount = 1;
let currentChar = str[0];
let currentCount = 1;
for (let i = 1; i < str.length; i++) {
if (str[i] === currentChar) {
currentCount++;
if (currentCount > maxCount) {
maxChar = currentChar;
maxCount = currentCount;
}
} else {
currentChar = str[i];
currentCount = 1;
}
}
return { char: maxChar, count: maxCount };
}
7.扁平化数组
function flattenArray(arr) {
let result = []
for (let i = 0
if (Array.isArray(arr[i])) {
result = result.concat(flattenArray(arr[i]))
} else {
result.push(arr[i])
}
}
return result
}