面试官常问的一些初中级前端知识点

news2024/11/17 6:36:49

CSS

1. 介绍下 CSS 盒子模型

回答到以下两点就可以:

  • 一个盒子由四个部分组成:content、padding、border、margin。两种盒子模型:W3C 标准盒子模型、IE 怪异盒子模型
  • 标准盒子模型 width / height 只是内容高度,不包含 padding 和 border 值;IE 怪异盒子模型 width / height 包含了 padding 和 border 值

2. flexbox 布局的属性和使用场景

关于 flex 常用的属性,我们可以划分为容器属性和容器成员属性

容器属性有:

  • flex-direction
  • flex-wrap
  • flex-flow
  • justify-content
  • align-items
  • align-content

容器成员属性如下:

  • order
  • flex-grow
  • flex-shrink
  • flex-basis
  • flex
  • align-self

使用场景:实现元素水平垂直方向的居中,以及在两栏三栏自适应布局

3. 移动端自适应方案

  • rem 方案
  • vw、vh

需要理解细节实现以及开发中单位如何转化,有兴趣可以看这篇文章移动端自适应指北

Javascript

1. ES6 常用的一些特性

  1. 解构赋值
 

js

复制代码

const { a = 2 } = { a: null } const { a = 2 } = { a: undefined }

上面两个 a 的值是什么

  1. let、var、const 的区别
  2. 怎么优化 const value = a && a.b && a.b.c,这边主要参考 ?. 用法

2. JS 类型检测的方法

  • typeof
  • instanceOf
  • Object.prototype.toString()

需要理解各个检查方法的输出

3.本地存储方式

  • cookie
  • sessionStorage
  • localStorage
  • indexedDB

各个存储方式的特点,以及使用场景。

4. 如何判断一个元素是否在可视区域中?

  • offsetTop、scrollTop
  • getBoundingClientRect,这个 API 的读取值如下

  • Intersection Observer

此 API 提供了一种异步观察目标元素与祖先元素或顶级文档视图交叉处变化的方法,简单的来说就是可以检测子元素在父元素中的可见性

5. JS 模块化方案

  • 立即执行函数
  • CommonJS
  • AMD、CMD、UMD
  • ES6 Module

大部分情况下主要问 CommonJS 和 ES6 Module 的使用和区别,有时也会问问其他方案。

6. Webpack 常使用的 Loader 和 Plugin

常见的 Loader:

  • style-loader: 将 css 添加到DOM的内联样式标签 style 里
  • css-loader :允许将 css 文件通过 require 的方式引入,并返回 css 代码
  • less-loader: 处理 less
  • sass-loader: 处理 sass
  • postcss-loader: 用 postcss 来处理 CSS
  • file-loader: 分发文件到 output 目录并返回相对路径,wepakck5 asset/resource 内置支持
  • url-loader: 和 file-loader 类似,但是当文件小于设定的 limit 时可以返回一个 Data Url,wepakck5 asset/inline 内置支持
  • babel-loader: 用 babel 来转换 ES6 文件到 ES

常见的 Plugin

  • html-webpack-plugin:在打包结束后,⾃动生成⼀个 html ⽂文件,并把打包生成的 js 模块引⼊到该 html 中
  • clean-webpack-plugin:删除(清理)构建目录,webpack5 已内置功能 output.clean
  • mini-css-extract-plugin:提取 CSS 到一个单独的文件中
  • copy-webpack-plugin:复制文件或目录到执行区域,如 vue 的打包过程中,如果我们将一些文件放到 public 的目录下,那么这个目录会被复制到 dist 文件夹中

7. React key 的作用

React 存在 Diff 算法,而元素 key 属性的作用是用于判断元素是新创建的还是被移动的元素,从而减少不必要的元素渲染。

进一步可以了解下 React Diff 算法的三个特点

  • tree 层级:DOM 节点跨层级的操作不做优化,只会对相同层级的节点进行比较
  • conponent 层级:如果是同一个类的组件,则会继续往下 diff 运算,如果不是一个类的组件,那么直接删除这个组件下的所有子节点,创建新的
  • element 层级:对于比较同一层级的节点们,每个节点在对应的层级用唯一的 key 作为标识

8. React 事件机制

主要问 React 事件的目的和与原生事件触发的先后顺序。

React 团队在源码中实现了一套事件机制来代替原生浏览器事件,其目的是:

  1. 抹平事件对象在不同浏览器上的差异,如:在不同浏览器下阻止事件冒泡(SyntheticEvent 合成事件);
  2. 与底层架构上的任务调度「优先级机制」衔接

React 采用事件委托方式,将冒泡和捕获事件统一绑定在 document, React17 及以后,不再将事件委托到 document 上,而是委托在渲染 React 应用的根 DOM 容器中

9. React useEffect 的使用

对于 useEffect,常问的几点是:

  1. useEffect 的使用,两个参数的作用
  2. useEffect 怎么模拟 componentDidMount 和 componentDidUpdate
  3. 为什么不建议 useEffect 的把第一个函数参数为设置为 async 函数

10. React useRef 的使用

useRef 这块主要问平时的使用

  1. 获取 DOM 元素,或者配置 forwardRef 获取组件示例
  2. 保存变量,相当于组件的实例变量

11. JSBrige

因为公司项目很多是手机端 h5,所有少不了和原生交互,这块知识点也会问问。

通用知识

1. 谈谈 HTTP 缓存

主要问 HTTP 缓存相关的知识,要了解浏览器请求什么时候会返回 disk cache、304、200。

具体可以看这篇文章图解 HTTP 缓存

2. 使用过哪些设计模式

前端开发中用的比较多的就是策略模式、单例模式、发布订阅、外观模式

总结

面试的题目大都是开发中会使用到的,回答的时候要讲重点,逻辑清晰即可。

 

给大家推荐一个实用面试题库

1、前端面试题库 (面试必备)            推荐:★★★★★

地址:前端面试题库

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/737659.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

平板ipad触控笔是哪几款?苹果笔性价比高的推荐

实际上,现在市场上许多产品都有各自的特色,一些注重产品外观,一些注重产品功能。就相当于ipad上所搭配的电容笔。所以,在购买电容笔的时候,必须对电容笔有一些认识。在选购前,必须先了解各种类型的电容笔&a…

7-8 程序员买包子

7-8 程序员买包子 分数 10 全屏浏览题目 切换布局 作者 陈越 单位 浙江大学 这是一条检测真正程序员的段子:假如你被家人要求下班顺路买十只包子,如果看到卖西瓜的,买一只。那么你会在什么情况下只买一只包子回家? 本题要求你考…

线程 线程池

线程和进程的区别? 进程是正在运行程序的实例,进程中包含了线程,每个线程执行不同的任务 不同的进程使用不同的内存空间,在当前进程下的所有线程可以共享内存空间 线程更轻量,线程上下文切换成本一般上要比进程上下文切换低 创…

博士后申请哪些老板不要选?

博士后申请是许多研究人员迈向学术界的重要阶段。在选择导师时,需要慎重考虑各方面因素。虽然我不能提及具体老板的名字,但我可以给你一些在博士后申请过程中需要谨慎选择的类型。以下是知识人网小编整理的一些可能不适合选择的老板类型: 1. …

Spring-AutowireFactoryBean

autowire autowire 即自动注入的意思,通过使用 autowire 特性,我们就不用再显示的配置 bean 之间的依赖了。把依赖的发现和注入都交给 Spring 去处理,省时又省力。autowire 几个可选项,比如 byName、byType 和 constructor 等。a…

刘铁猛C#教程学习笔记--初识C#程序

构成C#程序的基本元素 关键字:C#保留的用作特殊用途的标识符标识符:名字,如变量名字,类名字,命名空间名字等等; 标识符命名规则:只能以数字字母或者下划线开头,不能用关键字作为标识…

喜讯!云联壹云入选2023年北京市“专精特新”中小企业

6月25日,北京市经济和信息化局发布《关于对2023年第一季度北京市专精特新中小企业名单进行公告的通知》,北京云联壹云技术有限公司入选2023年北京市“专精特新”中小企业。 “专精特新”是国家为增强企业自主创新能力和核心竞争力,不断提高中…

HHDESK资源管理功能

为使客户体验更上一层楼,我们在最新的HHDESK版本中,新增了一个功能“资源管理”,其中不仅整合了原有的连接管理、网络代理功能,还增加了不少实用的新功能。 本篇便为您简单介绍一下。 1 本地服务 可以方便的调用本地资源。 比如…

基于STM32设计的酒精检测仪

一、需求分析 随着社会的发展和生活水平的提高,人们对于行车安全、家庭安全的要求越来越高,而酒驾等问题也日渐突出,为此,开发一款基于STM32的酒精检测仪,通过检测酒精浓度,实时显示结果并进行报警&#x…

openGauss学习笔记-05 openGauss gsql连接与使用方法

文章目录 openGauss学习笔记-05 openGauss gsql连接与使用方法5.1 以操作系统用户omm登录数据库主节点5.2 连接数据库5.3 数据库简单操作5.4 退出数据库 openGauss学习笔记-05 openGauss gsql连接与使用方法 openGauss提供了在命令行下运行的数据库连接工具gsql。此工具除了具…

【AI】在NVIDIA Jetson Orin Nano上使用tensorrtx部署yolov8

1、下载 1.1 权重文件下载 https://github.com/ultralytics/assets/releases本人下载的yolov8n.pt yolov8n-cls.pt:用于分类 yolov8n-pose.pt:用于姿势识别 yolov8n-seg.pt:用于对象分割 yolov8n-v8loader.pt:专用于人员检测器??? yolov8n.pt:用于对象检测 1.2 源码…

【Go|第7期】浅谈Lorca库中的Chromium命令行参数

日期:2023年7月9日 作者:Commas 签名:(ง •_•)ง 积跬步以致千里,积小流以成江海…… 注释:如果您觉得有所帮助,帮忙点个赞,也可以关注我,我们一起成长;如果有不对的地方&#xff…

你想知道个人博客和企业博客具体区别吗?点进来看看吧

在互联网时代,越来越多人开始会去使用博客来记录生活中的点滴。博客已经成为了人们分享信息、表达观点的重要平台。无论是个人还是企业,都可以通过博客来传播自己的声音和观点。这篇文章looklook会聚焦于企业博客,从分析个人与企业博客的区别…

【峟思科普】水库监测点位布设原则

水库监测一般有常规监测、变形监测、应力监测和地质灾害监测等,其中变形监测是水库安全的重要保障,是通过安装在水库坝体或大坝周边的变形监测仪来测量坝体或坝基表面的变形情况,如位移、沉降、裂缝、倾斜等。下面给大家介绍下水库监测点位布…

Android复杂UI的性能优化实践 - PTQBookPageView 性能优化记录

作者:彭泰强 1 评价指标&优化成果 要做性能优化,首先得知道性能怎么度量、怎么表示。因为性能是一个很抽象的词,我们必须把它量化、可视化。那么,因为是UI组件优化,我首先选用了GPU呈现模式分析这一工具。 在手机…

高斯双边滤波

note 原理:从空间维度和灰度维度生成两个高斯滤波器,再合成一个高斯滤波器 空间域高斯滤波器:GaussSpace(x,y) exp(-1 * (x*x y*y) / 2 / sigma / sigma) / 2 / PI / sigma / sigma; 灰度域(颜色域)高斯滤波器:GaussColor(x,y) exp(-1 * (f(x,y) -…

Android性能优化

Android性能优化 一、卡顿优化 前言:说到卡顿我们可能正常能想到是FPS刷新率,这是一个平均值,FPS高并不代表页面流畅,比如一个页面某一贞耗时了160毫秒,但是其他都是16毫秒,那么这个页面通过FPS的数据来看…

Java去重的终极指南:性能对比与高效实现

文章目录 前言一、使用Set接口下面是对几种Set实现类的简单介绍及代码示例:1.HashSet:2.LinkedHashSet:3.TreeSet: 二、使用Stream API三、其他方式1.使用Collectors.toSet()方法:配合Stream API的collect()方法&#…

vue3+cesium项目搭建

前言 最近需要在一个Vue3的项目中使用到cesium,对于一个cesium没有太多了解的人来说,还是比较麻烦的,本篇博文就将自己在这个过程踩的坑记录下来,有需要的可以看一下 1、vuecesium框架搭建 2、项目运行起来后,球体不…

展会邀请|虹科诚邀您参加7月11-13日上海慕尼黑光博会

2023年上海慕尼黑光博会与机器视觉展将于7月11-13日在上海国家会展中心隆重召开! 慕尼黑上海光博会自2006年举办以来,已成为中国激光、光学、光电行业一年一度的聚会。慕尼黑上海光博会助力行业发展趋势, 集中展示涵盖激光器与光电子、光学与…