面试可能会问的话题

156 阅读4分钟

Property VS Attribute

原生html中,

  1. property属性,只包含html的标准属性,它们是直接挂在node对象最表层的属性,比如id class title
  2. attribute属性指的是存在于一个名叫attributesproperty属性里的所有属性,不仅包括了property属性,还包括了data-xxx,甚至是aaa这样的属性,getAttribute setAttribute是操作attribute的api

meta标签

常见meta标签有设置字体的charset="UTF-8", 有用于移动端的viewport视口标签,以及描述和关键词meta

视口标签

<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no,viewport-fit=cover">
  • width=device-width // 网页的宽度=设备的宽度
  • initial-scale=1,minimum-scale=1,maximum-scale=1 // 不允许用户手动缩放
  • user-scalable=no // 不允许用户手动缩放
  • viewport-fit=cover // 内容撑满整个屏幕

常见的inline元素、block元素、inline-block元素有哪些?它们之间有什么区别?

  • span a button
  • div p article header footer h1-h6
  • img input

三者区别如下

  • 块级元素会独占一行,而内联元素和内联块元素则会在一行内显示。
  • 块级元素和内联块元素可以设置 width、height 属性,而内联元素设置无效。
  • 块级元素的 width 默认为 100%,而内联元素默认宽高是根据内部内容来决定的。

H5新增的标签

  • header

  • nav

  • article

  • section

  • aside

  • summary

  • footer

  • audio

  • video

SVG VS Canvas

  • SVG 是一种使用 XML 描述 2D 图形的语言。
  • Canvas 通过 JavaScript 来绘制 2D 图形。
  • SVG 基于 XML,这意味着 SVG DOM 中的每个元素都是可用的。您可以为某个元素附加 JavaScript 事件处理器。
  • 在 SVG 中,每个被绘制的图形均被视为对象。如果 SVG 对象的属性发生变化,那么浏览器能够自动重现图形。
  • Canvas 是逐像素进行渲染的。在 canvas 中,一旦图形被绘制完成,它就不会继续得到浏览器的关注。如果其位置发生变化,那么整个场景也需要重新绘制,包括任何或许已被图形覆盖的对象。

addEventListener VS onclick

  • addEventListener允许对同一节点的同一事件 多次绑定同一函数 但如果对同一节点多次.onclick,后来的事件处理函数总会覆盖前一次的事件处理函数

falsy值有哪些

false null 0 “” undefined NaN

移动端300ms的问题

手机浏览器器中在click事件触发后的300ms之后才会正常执行应有的操作,这是因为浏览器给了300ms的时间判断你第一下click之后还有没有第二下click?但久而久之这在手机端就成了该死的延迟问题了。

之前做过的项目的架构是什么

什么是敏捷开发

  • 敏捷是一套价值观和原则,核心思想是倡导团体内的互相帮助,与客户保持积极沟通,快速响应变化而非循规蹈矩,快速迭代不断交付可运行的软件版本,共同承担集体责任,如果产品经理的时间安排不过来,程序员甚至可以帮忙写需求文档和故事卡,因为我们更了解开发路线中的最优解,不存在那种设计和开发这两部分区分很开, WIP 数量限制就是推动整个团队共同承担团队责任的方式
  • 敏捷开发不该仅仅流于表面,比如写故事卡,每天早上以站立的形式进行晨会,或者是某一款敏捷开发的软件
  • product owner制作产品需求列表 product backlog

i18n你做了哪些事

www.bilibili.com/video/BV18i…

防抖的核心是定时器

为什么说Vue是数据驱动的库?

数据驱动的核心在于model,model就是一个本地处理数据的库,传统模式下从后端获取到的数据直接放到界面的,但是由于model的存在,后端获取到的数据首先会进入model进行处理,更加的集中化管理。

请简述mvvm

MVVM是Model-View-ViewModel的缩写。MVVM是一种设计思想。Model 层代表数据模型,也可以在Model中定义数据修改和操作的业务逻辑;View 代表UI 组件,它负责将数据模型转化成UI 展现出来,ViewModel 是一个同步View 和 Model的对象。

在MVVM架构下,View 和 Model 之间并没有直接的联系,而是通过ViewModel进行交互,Model 和 ViewModel 之间的交互是双向的, 因此View 数据的变化会同步到Model中,而Model 数据的变化也会立即反应到View 上。

ViewModel 通过双向数据绑定把 View 层和 Model 层连接了起来,而View 和 Model 之间的同步工作完全是自动的,无需人为干涉,因此开发者只需关注业务逻辑,不需要手动操作DOM, 不需要关注数据状态的同步问题,复杂的数据状态维护完全由 MVVM 来统一管理。

学习能力

经常记录自己项目中遇到的问题整理成博客,发表在掘金和语雀上