女王控的博客

面试

35 篇文章

前端面试题JS部分

请解释事件委托(event delegation) 事件委托是将事件监听器添加到父元素,而不是每个子元素单独设置事件监听器。当触发子元素时,事件会冒泡到父元素,监听器就会触发。这种技术的好处是: 内存占用减少,因为只需要一个父元素的事件处理程序,而不必为每个后代都添加事件处理程序。 无需从已删除的元素中解绑处理程序,也无需将处理程序绑定到新元素上。 参考 https://davidwalsh.name/event-delegate https://stackoverflow.com… »

前端面试题CSS部分

CSS 选择器的优先级是如何计算的? 浏览器通过优先级规则,判断元素展示哪些样式。优先级通过 4 个维度指标确定,我们假定以 命名,分别代表以下含义: 表示是否使用内联样式(inline style)。如果使用, 为 1,否则为 0。 表示 ID… »

前端面试题HTML部分

DOCTYPE有什么用? 版本一 在HTML中 doctype 有两个主要目的。 对文档进行有效性验证: 它告诉用户代理和校验器这个文档是按照什么DTD 写的。这个动作是被动的,每次页面加载时,浏览器并不会下载 DTD 并检查合法性,只有当手动校验页面时才启用。 决定浏览器的呈现模式: 对于实际操作,通知浏览器读取文档时用哪种解析算法。如果没有写,则浏览器则根据自身的规则对代码进行解析,可能会严重影响HTML 排版布局。浏览器有三种方式解析HTML… »

代码可读性

一、可读性的重要性 编程有很大一部分时间是在阅读代码,不仅要阅读自己的代码,而且要阅读别人的代码。因此,可读性良好的代码能够大大提高编程效率。 可读性良好的代码往往会让代码架构更好,因为程序员更愿意去修改这部分代码,而且也更容易修改。 只有在核心领域为了效率才可以放弃可读性,否则可读性是第一位。 二、用名字表达代码含义 一些比较有表达力的单词: 单词 可替代单词 send deliver、dispatch、announce、distribute、route find search、extract… »

代码重构

一、第一个案例 如果你发现自己需要为程序添加一个特性,而代码结构使你无法很方便地达成目的,那就先重构这个程序。 在重构前,需要先构建好可靠的测试环境,确保安全地重构。 重构需要以微小的步伐修改程序,如果重构过程发生错误,很容易就能发现错误。 案例分析 影片出租店应用程序,需要计算每位顾客的消费金额。 包括三个类:Movie、Rental 和 Customer,Rental 包含租赁的 Movie 以及天数。 最开始的实现是把所有的计费代码都放在 Customer… »

0%