前端面试题整理

这篇博客整理了前端面试中常见的知识点,包括CSS的居中方法,如text-align、margin、定位和flex布局;CSS的常用单位px、em、rem、vw和vh的解释;display属性及其作用;数组去重的多种策略;JavaScript的垃圾回收机制,如标记清除法和引用计数法;原型和原型链的概念,以及作用域、作用域链和闭包的深入探讨;浏览器渲染页面的基本流程。这些内容是前端开发者必备的基础知识。
摘要由CSDN通过智能技术生成

1.css的居中方式

1、文本类元素(行内元素)水平居中:
text-align: center;文本类元素垂直居中:line=height:容器高度

2、块级标签(display:block)水平居中:
margin-left: auto;margin-right: auto;

3、定位的标签居中:
水平居中left:50%;transform:translateX(-50%);垂直居中top:50%;transform:translateY(-50%);

4、flex布局:
父级display:flex。子级:justify-content: center;实现水平居中。子级align-items: center;实现垂直居中

5、背景图片居中,调整背景图片位置:
background-position:center center

2.css常用单位px,em,rem,%,vw,vh

1.px:绝对单位
实际测量设计图的尺寸即为px,一般相当于屏幕上的1像素

2.em:相对单位
em如果设置文字大小,参照物是父级文字大小。如果设置不是文字大小(eg设置的是标签的宽度或者高度…),参照物是当前标签文字大小

3.rem:相对单位
参照物是html文字大小,文字最小是12px 。

4.vw:相对单位
100vw相当于当前窗口的宽度的100%

5.vh:相对单位
100vh相当于当前窗口高度的100%

6.%:相对单位
宽度设置%,参照物是父级的宽度
高度设置%,参照物是父级的高度
padding-bottom和padding-top设置%,参照物是父级的宽度
文字设置%:参照物是父级文字大小。

3.display的值和作用

常用的属性值有display:none; display:block; display:inline;display:inline-block ;

display:none 隐藏该元素

display:block 显示为块级元素

display:inline 显示为行内元素

display:inline-block 显示为行内块级元素

通过以上属性值 我们便可以做到元素之间的转化
顾名思义 行类块级元素display:inline-block 这个属性简单的来说就是使得元素既有block的属性又有inline的属性 可以设置宽高以及上下边距(行类元素只能设置左右边距不能设置上下边距)

4.数组去重

1.双重for循环来去重

循环遍历数组中的每一个单元,跟其之后的单元进行比较,如果相同,就删除之后的单元
var arr=[1,1,1,2,3,3,4,2,5,5,7,8];
for(let i=0;i<arr.length;i++){
   
	for(let j=i+1;j<arr.length-1;j++){
   
		if(arr.[i]===arr.[j]){
   
		arr.splice(j,1);
			j--;
		}
	}
}
console.log(arr)//[1, 2, 3, 4, 5, 7, 8]

2.利用数组的排序方法再进行循环删除

var arr=[1,1,1,2,3,3,4,2,5,5,7,8];
arr.sort((a,b)=>{
   return a-b});
console.log(arr);//[1, 1, 1, 2, 2, 3, 3, 4, 5, 5, 7, 8]
for (let i = 0; i <= arr.length - 1 - 1; i++) {
   
            if (arr[i] === arr[i + 1]) {
   
                arr.splice(i + 1, 1);
                i--;
            }
        }
console.log(arr);//[1, 2, 3, 4, 5, 7, 8]

3.利用对象中不能储存相同的键名这一特点来去重

var arr=[1,1,1,2,3,3,4,2,5,5,7,8];
const obj = {
   };

arr.forEach(function (val, key) {
   
    obj[val] = 'haha'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值