2022前端笔试面试题

news2025/1/20 1:59:57

目录

以下为笔试题部分:

1.CSS盒子模型的构成是__,__,__,__.

2.二叉树的中序遍历顺序是badce,后续遍历顺序是bdeca,问前序遍历的顺序。

3.flex布局的父级元素中有哪些常用属性。

4.box-sizing:____;表示怪异盒模型(IE盒模型)

5.js中的原始数据类型有哪些?

6.一道关于辨析var和let和const的选择题:

7. slice和splice区别:

8.css选择器优先级

9.原型链最终指向NULL。

10.浏览器触发回流时,一定会触发重绘;但重绘不一定触发回流。

11. visibility:hidden 和 display:none区别

12. 哪些是html中的行内元素:dl p link span select

13. 哪些是Html中语义化标签: footer strong section aside.

14.箭头函数和普通函数的区别。

15.清除浮动的几种方式

16.盒子模型为什么会发生外边距塌陷

 以下为字节跳动二面部分:

1. HTTP1.0和HTTP1.1的区别

2.什么是七层网络模型,具体有哪些层

3.讲讲DNS域名解析流程

4.域名服务器层级结构,根域名服务器有几个,顶级域名服务器的域名有哪些

7. 题目一道:将扁平数据机构转json树

8.小程序和Html5的区别

9.从输入Url到访问到页面的具体流程

以下为笔试题部分:

1.CSS盒子模型的构成是__,__,__,__.

答:margin border padding content

2.二叉树的中序遍历顺序是badce,后续遍历顺序是bdeca,问前序遍历的顺序。

答:abcde

知识点:二叉树前序遍历顺序:当前->左节点->右节点;中序遍历顺序:左节点->当前->右节点;

后序遍历顺序:左节点->右节点->当前;

3.flex布局的父级元素中有哪些常用属性。

答:

flex-direction: 设置主轴的方向

justify-content: 设置主轴上的子元素对齐方式

flex-wrap: 设置子元素是否换行

align-content: 设置侧轴上的子元素的排列方式(多行)

align-items:  设置侧轴上的子元素排列方式 (单行)

flex-flow: 复合属性, 相当于同时设置了 flex-direction 和 flex-wrap
 

4.box-sizing:____;表示怪异盒模型(IE盒模型)

答:border-box。

知识点:

当设置为box-sizing:content-box时,将采用标准模式解析计算,也是默认模式;在标准模式下(W3C标准),一个块的总宽度= width + margin(左右) + padding(左右) + border(左右)

当设置为box-sizing:border-box时,将采用怪异模式解析计算;在怪异模式下( IE标准),一个块的总宽度= width + margin(左右)(即width已经包含了padding和border值)

5.js中的原始数据类型有哪些?

答:Undefined,Null,Boolean,Number、String。

知识点:

js中的数据类型分为:

原始数据类型(基础数据类型): Undefined,Null,Boolean,Number、String

和引用数据类型:对象、数组、函数。

其中,原始数据类型存储在栈中,引用存储在堆中;

原始数据类型按值传递数据,数据是不可变的(immutable),只有对象是可变的(mutable). 有时我们会尝试“改变”字符串的内容,但在JS中,任何看似对string值的"修改"操作,实际都是创建新的string值。任何方法都无法改变一个基本类型的值。而引用类型是按照引用传递数据的。

6.一道关于辨析var和let和const的选择题:

A let和const有块级作用域,var没有。

B var存在变量提升,其他没有。

C var是全局变量,其他不是。

D let和const存在暂存死区,var没有。

答:A对,B对,C var不一定定义全局变量,D对

知识点:

1.块级作用域:一对{},变量在离开定义的块级代码后立即被回收。

2.var声明的变量可以重复声明,没有块的概念,可以跨块访问,不能跨函数访问,当出现相同的变量名时,后者会覆盖前者。let,const有块级作用域,并且不可重复声明

3. let和const 定义的变量,只能在块作用域中访问,不能跨函数访问,不允许重复声明

4.let 和 var 的不同是,在变量声明之前就访问变量的话,会直接提示 ReferenceError,而不像 var 那样使用默认值 undefined
5. var有变量提升,let和const声明的变量没有变量提升

7. slice和splice区别:

slice不会更改原数组,splice会。

8.css选择器优先级

!important > 行内样式 > ID选择器 > 类选择器 > 元素 > 通配符* > 继承 > 浏览器默认属性

9.原型链最终指向NULL。

对。

10.浏览器触发回流时,一定会触发重绘;但重绘不一定触发回流。

对。

知识点:

什么是重绘和回流以及如何避免回流_windy-boy的博客-CSDN博客_重绘回流

1.重绘: 当页面中元素样式的改变并不影响它在文档流中的位置时,也就是说布局没有发生改变时(比如只是改变元素的颜色)。
2.回流:当渲染树(Render Tree)中的部分(或全部)元素的尺寸、结构、显示隐藏等发生改变时,浏览器重新渲染的过程称为回流。 简而言之,任何会改变元素几何信息(元素的位置和尺寸大小)的操作,都会触发回流。 回流是影响浏览器性能的关键因素。
比如:
(1)添加或者删除可见的 DOM 元素(不可见元素不会触发回流);
(2)元素尺寸或位置发生改变
(3)元素内容变化,比如文字数量或图片大小
(4)浏览器窗口大小发生改变
(5)CSS伪类的激活(例如::hover,从而改变了元素的布局的)

11. visibility:hidden 和 display:none区别

1.display:none是彻底消失,不在文档流中占位,浏览器也不会解析该元素;

2.visibility:hidden是视觉上消失了,可以理解为透明度为0的效果,在文档流中占位,浏览器会解析该元素;
 

12. 哪些是html中的行内元素:dl p link span select

select和span是行内,dl p是块级,link是void元素。

13. 哪些是Html中语义化标签: footer strong section aside.

以上都是。

14.箭头函数和普通函数的区别。

1.形式上:

普通函数: function(){}

箭头函数: ()=>{}

2. 当箭头函数的参数只有一个时,不需要为参数加();函数只有一个表达式时,不需要加{};箭头函数会自动返回箭头后面的处理结果(可以去掉return)。

eg.  

function(item){
    return item+=1;
}
相当于
item=>item+=1;

3.箭头函数是匿名的。

4.箭头函数没有构造函数,不能用new,不会自动生成__proto__属性

5.箭头函数没有arguments。

6.

15.清除浮动的几种方式

1.额外标签法(在最后一个浮动标签后,新加一个标签,给其设置clear:both;)(不推荐)

2.父级添加overflow属性(父元素添加overflow:hidden)(不推荐)

3.clearfix:after

clearfix{
    *zoom:1;
}
.clearfix:after{
    content:'clear';
    display:block;
    height:0;
    clear:both;
    overflow:hidden;
    visibility:hidden;
}

16.盒子模型为什么会发生外边距塌陷

以下为字节跳动二面部分:

1. HTTP1.0和HTTP1.1的区别

1.新增了请求方法:如PUT,DELETE

2.HTTP1.1支持长连接

3.HTTP1.1则引入了更多的缓存控制策略

4.HTTP1.1中新增了24个错误状态响应码

5.HTTP1.1的请求消息和响应消息都支持host域,且请求消息中如果没有host域会报告一个错误(400 Bad Request)

6.HTTP1.1更节约带宽

参考博客:HTTP1.0和HTTP1.1和HTTP2.0的区别_艾伦lee的博客-CSDN博客_http1.1

2.什么是七层网络模型,具体有哪些层

物理层->数据链路层->网络层->传输层->会话层->表示层->应用层

知识点:

平时学校里教的一般是五层网络模型:物理层->数据链路层->网络层->传输层->应用层

补充一下多出来的两层的作用:

会话层

  • 会话层建立、管理和终止表示层与实体之间的通信会话;
  • 建立一个连接(自动的手机信息、自动的网络寻址);

表示层:

  • 表示层,供多种功能用于应用层数据编码和转化,以确保以一个系统应用层发送的信息 可以被另一个系统应用层识别;
  • 可以理解为:解决不同系统之间的通信,eg:Linux下的QQ和Windows下的QQ可以通信;

3.讲讲DNS域名解析流程

1.检查浏览器缓存中是否缓存过该域名对应的IP地址

2.本机系统是否缓存过IP

3.向本地DNS服务器发起域名解析的请求

4.本地DNS服务器向根DNS服务器发起解析请求

5.根DNS服务器返回顶级DNS服务器地址给本地DNS服务器

6.本地DNS服务器向顶级DNS服务器发起解析请求

7.顶级DNS服务器返回NameServer服务器地址

8.本地DNS服务器向NameServer服务器发起解析请求

9.NameServer服务器返回正确的DNS解析结果

 参考博客:DNS域名详细解析过程(最全面,看这一篇就够)_bangshao1989的博客-CSDN博客_dns解析过程

4.域名服务器层级结构,根域名服务器有几个,顶级域名服务器的域名有哪些

(基于3的回答,面试官深入提问了相关问题)

根域名服务器>顶级域名服务器>权限域名服务器>本地域名服务器,

全球共13个,

.com、.cn、.org、.edu

 参考博客:DNS(域名解析协议)详解_honeyRJ的博客-CSDN博客_dns

5.如何解决异步问题

1. 使用回调函数(存在回调地狱问题)

2用Promise

3. async await

...还有很多

参考博客:前端异步(async)解决方案(所有方案)_前端纸飞机的博客-CSDN博客_async

6.讲讲你知道的设计模式

(吐槽:后来学了Java才知道面试官问的是啥)

知识点:

1. 什么是设计模式?

        Design pattern,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。

2.有哪些设计模式?

        共23种。

单例模式:某个类只能有一个实例,提供一个全局的访问点。

简单工厂:一个工厂类根据传入的参量决定创建出那一种产品类的实例。

工厂方法:定义一个创建对象的接口,让子类决定实例化那个类。

抽象工厂:创建相关或依赖对象的家族,而无需明确指定具体类。

建造者模式、原型模式、、适配器模式、组合模式、装饰模式、代理模式、亨元(蝇量)模式、外观模式、桥接模式、模板模式、解释器模式、策略模式、状态模式、观察者模式、备忘录模式、中介者模式、命令模式、访问者模式、责任链模式、迭代器模式

参考博客:23种设计模式总结_和代码去流浪的博客-CSDN博客_设计模式

7. 题目一道:将扁平数据机构转json树

8.小程序和Html5的区别

9.从输入Url到访问到页面的具体流程

(未完待续···持续填坑中)

(以上题目均为博主面试真实血泪记录···)

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

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

相关文章

JavaScript基础知识总结 14:学习JavaScript中的File API、Streams API、Web Cryptography API

目录一、Atomics和SharedArrayBuffer二、原子操作基础1、算术及位操作方法2、原子读和写3、原子交换4、原子Futex操作与加锁三、跨上下文消息四、Encoding API五、File API和Blob API1、File类型2、FileReader类型3、FileReaderSync类型4、Blob与部分读取六、Streams API1、应用…

uniapp和vue组件之间的传值方法(父子传值,兄弟传值,跨级传值,vuex)

前言 在做vue项目或者uniapp开发微信小程序时,经常会用到组件之间传值,因此想总结记录下。 一、父子传值 父向子传递:props子向父传递:通过 events($emit)父组件想调用子组件的方法:通过 thi…

Get请求报错404出现原因及解决办法

ajax中get请求时报404背景环境项目结构问题成因解决办法1解决办法2背景环境 已学习java基础,html,css,js,jquery,bootstrap,layui,maven,servlet和jsp,刚进入spring的学…

前端下载文件的几种方式

前端下载文件的几种方式 前言 实习一个人负责一个管理系统的前端部分。其中,就有前端下载文件的需要。最终采用的是使用axios发送get请求的方式,因为需要携带token。但是,不应该只注重结果,也应该注重过程,不然可能一…

jQuery选择器(二)(基本过滤器,内容过滤器,可见过滤器)

写在前面 jQuery是一个快速、简洁的 JavaScript 框架,是继Prototype之后又一个优秀的 JavaScript 代码库。jQuery的设计宗旨是“WriteLess,DoMore”,即倡导写更少的代码,做 更多的事情。jQuery封装了 JavaScript 常用的功能代码&…

【Vue】具名插槽

要点: 具名插槽:即具有名字的插槽,在默认插槽基础上指定插槽的名字(name " ")。父组件指明放入子组件的哪个插槽 slot "footer",如果是template可以写成 v-slot : footer。 父组件中…

html中关于侧边导航栏和导航栏的编写

侧边导航栏 <style>.box{width: 50px;height: 50px;background-color: #483957;transition: width .5s,background-color .2s;}.box:hover{background-color: #004FCB;width: 200px;cursor: pointer;}.a1{position: fixed;right: 40px;top: 200px;float: right;}</st…

如何搭建一个vue项目(完整步骤)

如何搭建一个vue项目(完整步骤) 一、环境准备 1、安装node.js 下载地址&#xff1a;https://nodejs.org/zh-cn/界面展示 2、检查node.js版本 查看版本的两种方式 1|node -v 2|node -version 出现版本号则说明安装成功&#xff08;最新的以官网为准&#xff09; 3、为了…

vue环境搭建

前言&#xff1a;1、首先安装nodejs2、其次安装vue-cli&#xff0c;配置vue环境变量3、再次安装webpack、webpack-cli一、NodeJs安装 1、nodejs下载地址&#xff1a;https://nodejs.org/ 2、验证是否安装成功&#xff08;安装时已经自动加入到环境变量的path中&#xff09; 以…

Referer和Referrer Policy以及图片防盗链

​ Referer Referer请求头包含了当前请求页面的来源页面的地址&#xff0c;即表示当前页面是通过此来源页面里的链接进入的。服务端一般使用Referer&#xff08;注&#xff1a;正确英语拼写应该是referrer&#xff0c;由于早期HTTP规范的拼写错误&#xff0c;为了保持向后兼容…

html 简单表格制作(看了它足以应对大部分表格)

目录 基础表格 进阶表格 锦上添花表格 bgcolor background align frame元素 基础表格 首先制作一个表格我们要知道一张简单表格就是由二部分组成分别是表头&#xff0c;表身。 下面就是一个简单的表格。 表头就是黑体加粗的内容&#xff0c;表身就是表格主要表达的内容。…

css里面设置按钮(button)让字体居中

题目&#xff1a;设置button中的字体让其居中&#xff0c;不至于溢出(字体下落&#xff0c;重影等问题) 1&#xff0c;抛出问题&#xff0c;如图所示 2&#xff0c;引出我的代码 <view class"loginBtn"><form action"check.jsp" method"get…

带你吃透Servlet技术(二)

个人主页&#xff1a; 几分醉意的CSDN博客_传送门 前言&#xff1a;在上一篇&#xff0c;我们已经初步的了解了 Servlet技术 传送门&#xff0c;接下来我们继续深入学习Servlet。 本文目录&#x1f496;继承HttpServlet实现Servlet程序✨代码实战✨自动生成doGet和doPost方法✨…

猿创征文|如何使用 Element UI? 以登录框为例带你感受一下基础使用

目录 前言 一、安装&#xff08;所有内容&#xff09; 二、按需引入 三、案例演示 1.案前整理 2.代码演示&#xff08;后附源码&#xff09; 3.源码 前言 Element-ui&#xff0c;一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的组件库&#xff0c;提供了配套设计…

el-upload上传文件

el-upload上传文件 前言 公司和学校项目都用到了上传文件的功能&#xff0c;记录一下。 准备 express实现的上传接口 const express require(express); ​ // 文件上传模块 const multiparty require(multiparty) ​ // 提供跨域资源请求 const cors require(cors) ​ …

Idea中使用Tomcat部署并启动Web项目

首先在Idea中选择编辑运行配置&#xff0c;如下图 左上角的“”号&#xff0c;选择Tomcat服务&#xff0c;如下图 自定义服务名称和项目在浏览器的访问路径 配置Tomcat服务器路径&#xff0c;如下图 然后在服务器中部署项目&#xff08;下面的警告提示&#xff1a;Warning: No …

nginx响应码301及访问路径参数丢失之间的关系

nginx响应码301及访问路径参数丢失之间的关系 本文比较长&#xff0c;所以写了一篇比较短的结果导向的文章&#xff0c;换了一下思路&#xff0c;大家可以看一这篇文章&#xff0c;如果感兴趣再来看这篇文章&#xff1a;nginx导致vue设置history模式下的请求丢失参数 背景描述…

Java使用WebStocket实现前后端互发消息

记录一下自己使用WebStocket实现服务器主动发消息的过程和踩得雷。 需求&#xff1a;车牌识别系统识别到车牌后&#xff0c;持续向前端推送车牌信息&#xff0c;直到前端回复收到。 测试需求&#xff1a;新增 客户后&#xff0c;持续向前端推送客户信息&#xff0c;直到前端收…

type=“module“ 你了解,但 type=“importmap“ 你知道吗

新出了一个系列&#xff1a;Vue2与Vue3 技巧小册 有梦想&#xff0c;有干货&#xff0c;微信搜索 【大迁世界】 关注这个在凌晨还在刷碗的刷碗智。 本文 GitHub https://github.com/qq449245884/xiaozhi 已收录&#xff0c;有一线大厂面试完整考点、资料以及我的系列文章。 当E…

css的rotate3d实现炫酷的圆环转动动画

1.实现效果 2.实现原理 2.1 rotate3d rotate3d&#xff1a;rotate3d() CSS 函数定义一个变换&#xff0c;它将元素围绕固定轴移动而不使其变形。运动量由指定的角度定义; 如果为正&#xff0c;运动将为顺时针&#xff0c;如果为负&#xff0c;则为逆时针。 语法&#xff1a; …