面试题整合(弄着玩的)

164 阅读2分钟

1. DIV+CSS 布局的好处

  • 代码精简,且结构与样式分离,易于维护
  • 代码量减少了,减少了大量的带宽,页面加载的也更快,提升了用户的体验
  • 对 SEO 搜索引擎更加友好,且 H5 又新增了许多语义化标签更是如此
  • 允许更多炫酷的页面效果,丰富了页面
  • 符合 W3C 标准,保证网站不会因为网络应用的升级而被淘汰

缺点: 不同浏览器对 web 标准默认值不同,所以更容易出现对浏览器的兼容性问题。

2. 如何解决 a 标点击后 hover 事件失效的问题?

  • 改变 a 标签 css 属性的排列顺序
  • 只需要记住 LoVe HAte 原则就可以了:
  link→visited→hover→active

比如下面错误的代码顺序:

  a:hover{
   color: green;
   text-decoration: none;
 }
 a:visited{ /* visited在hover后面,这样的话hover事件就失效了 */
   color: red;
   text-decoration: none;
 }

正确的做法是将两个事件的位置调整一下。 注意 ⚠️ 各个阶段的含义:

a:link:未访问时的样式,一般省略成 a a:visited:已经访问后的样式 a:hover:鼠标移上去时的样式 a:active:鼠标按下时的样式

3. 点击一个 input 依次触发的事件

  const text = document.getElementById('text');
  text.onclick = function (e) {
    console.log('onclick')
  }
  text.onfocus = function (e) {
    console.log('onfocus')
  }
  text.onmousedown = function (e) {
    console.log('onmousedown')
  }
  text.onmouseenter = function (e) {
    console.log('onmouseenter')
  }

答案:

  'onmouseenter'
  'onmousedown'
  'onfocus'
  'onclick'

4. 响应式的好处

对某些数据的修改就能自动更新视图,让开发者不用再去操作 DOM,有更多的时间去思考业务逻辑。

5. Vue 的优点及缺点

首先 Vue 最核心的两个特点,响应式组件化

  • 响应式:这也就是 vue.js 最大的优点,通过 MVVM 思想实现数据的双向绑定,通过虚拟 DOM 让我们可以用数据来操作 DOM,而不必去操作真实的 DOM,提升了性能。且让开发者有更多的时间去思考业务逻辑。

  • 组件化:把一个单页应用中的各个模块拆分到一个个组件当中,或者把一些公共的部分抽离出来做成一个可复用的组件。所以组件化带来的好处就是,提高了开发效率,方便重复使用,使项目的可维护性更强。

  • 虚拟DOM,当然,这个不是 vue 中独有的。