笔试记录(3)

151 阅读3分钟

2024.6.1 小红书

蓝桥国赛前一天突然通知的,询问hr有无下次顺延的笔试也不回消息

数据结构和算法小题考了:KMP、背包、栈、堆

os、数据库(是真忘差不多了)、计网也都有涉及到

1.HTML的声明
  • 不区分大小写
  • 只能放在文档首行
  • H5只有一种类型(简化以前复杂的DTD(文档类型定义))
  • 属于单标签
2.e.cancelBubble = true 起到与e.stopPropagation()相同效果 阻止冒泡
3.::before伪元素须设置content属性后才生效; 其宽高属性须设置position:absolute后才生效
4.下列关于模式切换和进程切换的叙述错误的是(D)
  • A发生模式切换可以不改变正处于运行态的进程状态
  • B模式切换表示与用户程序相关联的处理器执行模式和与操作系统相关联的处理器模式之间的切换
  • C进程切换可以在操作系统从当前正在运行的进程中获得控制权的任何时刻发生
  • D进程切换不一定在操作系统的内核模式下进行

只有内核模式下的操作系统才能访问和修改进程控制块(PCB)、内存管理等关键数据结构

5.Socket网络编程
  • Socket可以通过IP地址与端口号标识一个进程
  • WebSocket不同于Socket,它是一个应用层协议(用于在单个TCP连接上进行全双工通信,而传统的Socket是一个编程接口,可以实现各种协议,包括TCP和UDP)
  • 在Linux环境下,Socket是一种特殊的文件
6.类的继承
class cls {
    constructor() {
        console.log("done");
    }
}

class son1 extends cls {
    constructor() {
        super();
    }
}
class son2 extends cls {}
class son3 extends cls {
    constructor() {}
}
new son1();
new son2();
new son3();

//输出:
//done
//done
//报错 ReferenceError: Must call super constructor in derived class before accessing 'this' or returning from derived constructor
7. for in 和 for of
const arr = [117];
arr.ops = 935;
arr.__proto__.func = 130;
for (let i in arr) {
    if (i === 0) {
        console.log(undefined);
        break;
    }
    console.log(arr[i]);
}
for (let i of arr) {
    console.log(i);
}

//输出
117
935
130

117

for in :迭代一个对象的所有可枚举字符串属性(除 Symbol 以外),包括继承的可枚举属性

大家要明白,这里arr实际上是这样的一个东西:

{'0':117, 'ops':935} (原型链上还有个func属性)
//是字符串0

所以这里只要把 if (i === 0) 改成 if (i == 0) ,就直接走 if 里了

而 for of 本质就是迭代器,对于数组就是遍历数组中的值

8. 浏览器缓存

cache-control、expires、last-modified、etag 以及强缓存、协商缓存这些你能说个大概吗? 我觉得这篇文章写的很好juejin.cn/post/717879…

9. css样式优先级(自以为这块没啥难的了,没想到还是有漏洞)

内部样式表比外部样式表优先级高? NO! 遵循就近原则。比如:

style{...}
<link rel="stylesheet" href="..." />
<body>...</body>

这里外链是比内部样式优先级高的 ———————————————————————————————————————————————

前两道算法题简答,第三道算法题不会, 好像是 数学+二分 ,讨厌 2.png

3.png

笔试太突然,不过准备了估计也做不好,当时光想着第二天考完蓝桥找雷弟耍了

想进大厂算法还是要硬啊