2021-12-30 18:22:38
百度前端经典面试题汇总及解析
1. 常见标签语义及默认display值与区别区别:
宽度默认填满父容器,可设置宽高。
垂直方向margin/padding生效,水平方向自动扩展。
独占一行,前后元素换行显示。
宽度由内容决定,不可直接设置宽高。
垂直方向margin/padding无效,水平方向生效。
不换行,与其他inline元素共处一行。
结合两者特性,可设置宽高且不换行。
元素不占据空间,不响应事件。
元素占据空间,不响应事件。
元素透明但占据空间,可响应事件。
跨域:不同域名、端口或协议间的资源访问限制。实现方式:
通过动态创建<script>标签,指定回调函数名,服务器返回数据时调用该函数。例如:
function handleData(data) { console.log(data); }const script = document.createElement('script');script.src = '永久有效,同源共享。
容量约5MB。
窗口关闭后失效,仅当前窗口可见。
可设置过期时间,容量约4KB。
每次HTTP请求携带,影响性能。
已废弃,支持结构化数据存储。
利用事件冒泡机制,在父元素上绑定事件处理函数,通过event.target判断子元素触发事件。例如:
document.getElementById('parent').addEventListener('click', (e) => { if (e.target.matches('.child')) { console.log('子元素被点击'); }});9. 类创建、继承与闭包接口:open()、close()、setTitle(text)。
细节:遮罩层、动画效果、ESC关闭。
接口:setData(list)、onSelect(item)。
细节:防抖、键盘导航。
show(options):配置标题、内容、按钮。
hide():关闭弹窗。
遮罩层z-index管理。
弹窗定位与动画性能。
解析HTML生成DOM树。
解析CSS生成CSSOM树。
合并为渲染树并布局绘制。
禁止未声明变量,提升代码健壮性。
禁止重复参数名,避免潜在错误。
部分旧代码需修改(如with语句失效)。
正确Doctype触发严格模式。
缺失或错误Doctype触发混杂模式。
直接写入内容流,会覆盖整个页面(若在页面加载后调用)。
修改指定DOM元素的内部内容,支持部分更新。
前端:媒体查询调整布局。
后端:根据设备返回不同HTML模板。
总宽度 = width + padding + border + margin。
总宽度 = width + margin(width包含padding和border)。
GET:URL或Cookie。
POST:请求体。
POST数据不显示在地址栏,更安全。
GET受URL长度限制,POST无限制。
GET请求可被缓存,POST默认不缓存。