技术标签: 前端开发 面试 前端 javascript
web前端面试题分为:html/css面试题、javascript面试题、vue面试题、性能优化面试题、网络方面面试题等等,那么在2022年,web前端面试题有哪些呢?
可以来小鹿线看看面试题视频https://xuexiluxian.cn/
第一章 面试题基础篇
1.1 HTML面试题
面试题:行内元素有哪些?块级元素有哪些? 空(void)元素有哪些?
行内元素:span、img、input…
块级元素:div、footer、header、section、p、h1…h6…
空元素:br、hr…
元素之间的转换问题:
display: inline; 把某元素转换成了行内元素 ===>不独占一行的,并且不能设置宽高
display: inline-block; 把某元素转换成了行内块元素 ===>不独占一行的,可以设置宽高
display: block; 把某元素转换成了块元素 ===>独占一行,并且可以设置宽高
区别一:link先有,后有@import(兼容性link比@import兼容);
区别二:加载顺序差别,浏览器先加载的标签link,后加载@import
title与h1的区别:
定义:
title:概括了网站信息,可以告诉搜索引擎或者用户关于这个网站的内容主题是什么
h1:文章主题内容,告诉蜘蛛我们的网站内容最主要是什么
区别:
title他是显示在网页标题上、h1是显示在网页内容上
title比h1添加的重要 (title > h1 ) ==》对于seo的了解
场景:
网站的logo都是用h1标签包裹的
b与strong的区别:
定义:
b:实体标签,用来给文字加粗的。
strong:逻辑标签,用来加强字符语气的。
区别:
b标签只有加粗的样式,没有实际含义。
strong表示标签内字符比较重要,用以强调的。
题外话:为了符合css3的规范,b尽量少用该用strong就行了。
i与em的区别:
定义:
i:实体标签,用来做文字倾斜的。
em:是逻辑标签,用来强调文字内容的
区别:
i只是一个倾斜标签,没有实际含义。
em表示标签内字符重要,用以强调的。
场景:
i更多的用在字体图标,em术语上(医药,生物)。
区别一:
title : 鼠标移入到图片显示的值
alt : 图片无法加载时显示的值
区别二:
在seo的层面上,蜘蛛抓取不到图片的内容,所以前端在写img标签的时候为了增加seo效果要加入alt属性来描述这张图是什么内容或者关键词。
png:无损压缩,尺寸体积要比jpg/jpeg的大,适合做小图标。
jpg:采用压缩算法,有一点失真,比png体积要小,适合做中大图片。
gif:一般是做动图的。
webp:同时支持有损或者无损压缩,相同质量的图片,webp具有更小的体积。兼容性不是特别好。
CSS的盒子模型有哪些:标准盒子模型、IE盒子模型
CSS的盒子模型区别:
标准盒子模型:margin、border、padding、content
IE盒子模型 :margin、content( border + padding + content )
通过CSS如何转换盒子模型:
box-sizing: content-box; /标准盒子模型/
box-sizing: border-box; /IE盒子模型/
line-height是每一行文字的高,如果文字换行则整个盒子高度会增大(行数行高)。
height是一个死值,就是这个盒子的高度。
CSS选择符:
通配()
id选择器(#)
类选择器(.)
标签选择器(div、p、h1…)
相邻选择器(+)
后代选择器(ul li)
子元素选择器( > )
属性选择器(a[href])
CSS属性哪些可以继承:
文字系列:font-size、color、line-height、text-align…
***不可继承属性:border、padding、margin…
优先级比较:!important > 内联样式 > id > class > 标签 > 通配
CSS权重计算:
第一:内联样式(style) 权重值:1000
第二:id选择器 权重值:100
第三:类选择器 权重值:10
第四:标签&伪元素选择器 权重值:1
第五:通配、>、+ 权重值:0
用边框画(border),例如:
{
width: 0;
height: 0;
border-left:100px solid transparent;
border-right:100px solid transparent;
border-top:100px solid transparent;
border-bottom:100px solid #ccc;
}
defer : 等html全部解析完成,才会执行js代码,顺次执行js脚本。
async : async是和html解析同步的(一起的),不是顺次执行js脚本(谁先加载完谁先执行)。
基本类型:string、number、boolean、undefined、null、symbol、bigint
引用类型:object
NaN是一个数值类型,但是不是一个具体的数字。
console.log( true + 1 ); //2
console.log( ‘name’+true ); //nametrue
console.log( undefined + 1 ); //NaN
console.log( typeof undefined ); //undefined
console.log( typeof(NaN) ); //number
console.log( typeof(null) ); //object
作者在设计js的都是先设计的null(为什么设计了null:最初设计js的时候借鉴了java的语言)
null会被隐式转换成0,很不容易发现错误。
先有null后有undefined,出来undefined是为了填补之前的坑。
具体区别:JavaScript的最初版本是这样区分的:null是一个表示"无"的对象(空对象指针),转为数值时为0;undefined是一个表示"无"的原始值,转为数值时为NaN。
== : 比较的是值
string == number || boolean || number …都会隐式转换
通过valueOf转换(valueOf() 方法通常由 JavaScript 在后台自动调用,并不显式地出现在代码中。)
=== : 除了比较值,还比较类型
js是单线程的语言。
js代码执行流程:同步执行完==》事件循环
同步的任务都执行完了,才会执行事件循环的内容
进入事件循环:请求、定时器、事件…
事件循环中包含:【微任务、宏任务】
微任务:promise.then
宏任务:setTimeout…
要执行宏任务的前提是清空了所有的微任务
流程:同步==》事件循环【微任务和宏任务】》微任务》宏任务=》微任务…
除了函数外,js是没有块级作用域。
作用域链:内部可以访问外部的变量,但是外部不能访问内部的变量。
注意:如果内部有,优先查找到内部,如果内部没有就查找外部的。
注意声明变量是用var还是没有写(window.)
注意:js有变量提升的机制【变量悬挂声明】
优先级:声明变量 > 声明普通函数 > 参数 > 变量提升
本层作用域有没有此变量【注意变量提升】
注意:js除了函数外没有块级作用域
普通声明函数是不看写函数的时候顺序
function c(){
var b = 1;
function a(){
console.log( b );
var b = 2;
console.log( b );
}
a();
console.log( b );
}
c();
var name = ‘a’;
(function(){
if( typeof name == ‘undefined’ ){
var name = ‘b’;
console.log(‘111’+name);
}else{
console.log(‘222’+name);
}
})()
function fun( a ){
var a = 10;
function a(){}
console.log( a );
}
fun( 100 );
对象是通过new操作符构建出来的,所以对象之间不想等(除了引用外);
对象注意:引用类型(共同一个地址);
对象的key都是字符串类型;
对象如何找属性|方法;
查找规则:先在对象本身找 ===> 构造函数中找 ===> 对象原型中找 ===> 构造函数原型中找 ===> 对象上一层原型查找
[1,2,3] === [1,2,3] //false
var obj1 = {
a:‘hellow’
}
var obj2 = obj1;
obj2.a = ‘world’;
console.log(obj1); //{a:world}
(function(){
console.log(a); //undefined
var a = 1;
})();
var a = {}
var b = {
key:‘a’
}
var c = {
key:‘c’
}
a[b] = ‘123’;
a[c] = ‘456’;
console.log( a[b] ); /
文章浏览阅读3.5w次,点赞2次,收藏16次。Intel(R) Ethernet Connection I218 VIntel(R) Ethernet Connection I219 V该网卡在安装windows Server系列系统(如windows server2012 、windows server2016等)时无法安装驱动,官方不提供该网卡的windows server版驱动(原因不明,可能和商业销售模式有关)。解_intel1219v驱动打不上
文章浏览阅读1.4w次,点赞16次,收藏75次。Pandas知识点-合并操作merge_pandas merge on 多列
文章浏览阅读2.5w次,点赞7次,收藏9次。解决办法:_error msb8020:the build tools for
文章浏览阅读104次。常见对象1. 数组高级冒泡排序数组排序之冒泡排序: 相邻元素两两比较,大的往后放,第一次完毕,最大值出现在了最大索引处*/public class ArrayDemo {public static void main(String[] args) {// 定义一个数组int[] arr = { 24, 69, 80, 57, 13 };System.out.printl..._编写类a.a,包含方法static int[] a(int[] x,int y),删除数组x的下标为y的元素,返
文章浏览阅读190次。1097 Deduplication on a Linked List (25分)题目描述Given a singly linked list L with integer keys, you are supposed to remove the nodes with duplicated absolute values of the keys. That is, for each value..._pat 甲级1097
文章浏览阅读3.6w次,点赞19次,收藏29次。MySQL数据修改语句在 MySQL中,可以使用 UPDATE 语句来修改、更新一个或多个表的数据。基础语法UPDATE 语句的基本语法使用 UPDATE 语句修改单个表,语法格式为:UPDATE <表名> SET 字段 1=值 1 [,字段 2=值 2… ] [WHERE 子句 ][ORDER BY 子句] [LIMIT 子句]语法说明如下:<表名>:用于指定要更新的表名称。SET 子句:用于指定表中要修改的列名及其列值。其中,每个指定的列值可以是表达式,也_mysql修改数据语句
文章浏览阅读1w次,点赞6次,收藏78次。1.查看原理图元件的PCB封装类型工具-封装管理器封装类型2.原理图元件生成到PCB上新建PCB文件-保存-设计-第一个生成更改-执行更改元件更新到了pcb文件里3.裁剪板子设计-板子形状-重新定义板子形状g调整栅格对齐点满四个点裁剪出4.切换至三维模式查看查看-切换到三维显示右键拖动,shift+右键旋转三维时也可以修改5.改变PCB封装打..._原理图生成pcb
文章浏览阅读1k次。打开Visual Studio 2005 Solution时,提示以下错误信息:“项目文件已被重命名或已不在解决方案中”。原因可能是solution中引用的proj文件路径与本地环境不一致,导致找不到项目文件。解决办法:把出错项..._项目文件已被重命名或已不在解决方案中
文章浏览阅读1.2w次,点赞8次,收藏48次。python3利用pandas读取excel的列取出最大最小值from pandas import DataFrame,read_exceldef openfile(path,name): #读取文件,然后构成字典 #path文件路径 #sheet_name:选取表的表名,默认是第一张表 data = DataFrame(read_excel(path,sheet_name=name..._pandas中某一列值与某个值取小
文章浏览阅读3.1k次。pm2学习使用一、pm2 安装二、pm2 常用命令三、pm2 管理非node应用1. 如图创建 redis-server.json2. redis 交给 pm2管理3. 保存 pm24. 开机运行pm2四、linux 服务器重启pm2 list列表为空一、pm2 安装npm install -g pm2二、pm2 常用命令pm2 start app.js --watch ..._pm2 list
文章浏览阅读8.5k次,点赞4次,收藏34次。多维数组值传递、quiver3、quiver、plot3、plot等用法以及向量归一化问题实例解析!_matlab quiver3函数
文章浏览阅读1.3k次。1. 指数 指数是幂运算aⁿ(a≠0)中的一个参数,a为底数,n为指数,指数位于底 数的右上角,幂运算表示指数个底数相乘2. 对数 在数学中,对数是对求幂的逆运算,正如除法是乘法的倒数3. 级数 级数是指将数列的项依次用加号连接起来的函数。..._对数数量级