面试题-2

1.重绘和重排有什么区别

重排(回流):布局引擎会根据所有的样式计算出盒模型在页面上的位置和大小

重绘:计算好盒模型的位置,大小和其他一些属性之后,浏览器就会根据每个盒模型的特性进行绘制

浏览器的渲染机制:

对DOM的大小,位置进行修改后,浏览器需要重新计算元素的这些几何属性,就叫重排

对DOM的样式进行修改,比如color和background-color,浏览器不需要重新计算几何属性的时候,直接绘制了该元素的新样式,那么这里就只触发了重绘

2.让一个元素水平垂直居中的方式有哪些

1.定位+margin

2.定位+transform

3.flex布局

4.grid布局

3.css的哪些属性可以继承,哪些不可以继承

 css的三大特性 :继承,层叠,优先级

子元素可以继承父类元素的样式:

1.字体的一些属性:font

2.文本的一些属性:line-height

3.元素的可见性:visibility:hidden

4.表格布局的属性:border-spacing

5.页面的样式属性:page

4.有没有用过预处理器

 预处理语言增加了变量,函数, 混入等强大的功能

SASS  LESS

5.JS由哪三部分组成

1.ECMAScript:JS的核心内容,描述了语言的基础语法,比如var,for,数据类型(数组,字符串)

文档对象模型(DOM):DOM把整个HTML页面规划为元素构成的文档 

浏览器对象模型(BOM):对浏览器窗口进行访问和操作

6.JS有哪些内置对象

String Boolean  Number Araay  Object Function  Math  Date RegExp...

Math

abs()   max()  min() 

Data

new Data()   getYear()

Array

String

concat()  Length  slice()   split()

7.操作数组方法有哪些

push()

pop()

sort()

splice()

unshift()

shift()

reverse()

contact()

join()

map()

filter()

reduce()

some()

findIndex()

哪些方法改变原数组:

push,pop(),shift(),unshift(),sort(),reverse()

8.JS对数据类型的检测方式有哪些

typeof():对于基本数据类型没问题,遇到引用数据类型就不管用

instanceof(): 只能判断引用数据类型,不能判断基本数据类型

constructor:几乎可以判断基本数据类型和引用数据类型,有一定的局限性

如果申明了一个构造函数,并把它的原型指向Array。

object.prototype.toString.call():可以检测任何类型

9.说一下闭包,闭包有什么特点?

什么是闭包,函数嵌套函数,内部函数被外部函数返回保存下来时,就会产生闭包

特点:

可以重复利用变量,并且这个变量不会污染全局的一种机制,这个变量是一直保存再内存中,不会被垃圾回收机制回收

缺点:闭包较多的时候,会消耗内存,导致页面的性能下降,在IE浏览器中才会导致内存泄漏

使用场景:防抖,节流,函数嵌套函数避免全局污染的时候

10.内存泄漏怎么理解

JS里已经分配内存地址的对象,但是由于长时间没有释放或者没有消除,造成长期占用内存的现象,会让内存资源大幅防雷,最终导致运行速度慢,甚至崩溃的情况。

垃圾回收机制:一些为生命直接赋值的变量:一些未清空的定时器,过度的闭包等。

11.事件委托是什么?

又叫事件代理,原理就是利用了事件冒泡的机制来实现,也就是把子元素的事件绑定到了父元素的身上

如果子元素阻止了事件冒泡,那么委托也就不成立

组织事件冒泡:event.stopPropagation()

addEventListener('click',函数名,true/false)默认是false(事件冒泡),true(事件捕获)

好处:提高性能, 减少事件的绑定,也就减少了内存的占用

12.基本数据类型和引用数据类型的区别?

基本数据类型:String,Boolean,Number,underfined,null

基本数据类型保存在栈内存中,保存的就是一个具体的值

引用数据类型(复杂数据类型):Object  Function   Array

保存在堆内存当中,声明一个引用类型的变量,他保存的是引用数据类型的地址。

假如声明两个引用类型同时指向了一个地址的时候,修改其中一个那么另外一个也会改变。

 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL(17):触发器

概述 MySQL从 5.0.2 版本开始支持触发器。MySQL的触发器和存储过程一样,都是嵌入到MySQL服务器的一段程序。 触发器是由 事件来触发 某个操作,这些事件包括 INSERT 、 UPDATE 、 DELETE 事件。 所谓事件就是指用户的动作或者触发某项行为。 如果定义了触…

VUE基础的一些总结

首先推荐观看VUE官方文档 目录 创建一个 Vue 应用 要创建一个 Vue 应用,你需要按照以下步骤操作: 步骤 1:安装 Node.js 和 npm 确保你的计算机上已经安装了 Node.js。你可以在 Node.js 官网 上下载并安装它。安装完成后,npm&…

2023亚太杯数学建模思路 - 复盘:光照强度计算的优化模型

文章目录 0 赛题思路1 问题要求2 假设约定3 符号约定4 建立模型5 模型求解6 实现代码 建模资料 0 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 1 问题要求 现在已知一个教室长为15米,宽为12米&…

一文解释对比学习

对比学习是一种无监督学习技术,其核心思想是通过比较不同样本之间的相似性和差异性来学习数据的表示(features)。它不依赖于标签数据,而是通过样本之间的相互关系,使得模型能够学习到有意义的特征表示。 在对比学习中…

【ML】欠拟合和过拟合的一些判别和优化方法(吴恩达机器学习笔记)

吴恩达老师的机器学习教程笔记 减少误差的一些方法 获得更多的训练实例——解决高方差尝试减少特征的数量——解决高方差尝试获得更多的特征——解决高偏差尝试增加多项式特征——解决高偏差尝试减少正则化程度 λ——解决高偏差尝试增加正则化程度 λ——解决高方差 什么是…

接口测试 —— Jmeter 之测试片段的应用

一、什么是测试片段? 控制器上一种特殊的线程组,它与线程组处于一个层级。与线程组不同的就是:测试片段不会执行。它是一个模块控制器或者被控制器应用时才会被执行。通常与Include Controller或模块控制器一起使用。 1.1 那它有啥作用&…

前端跨界面之间的通信解决方案

主要是这两个方案,其他的,还有 SharedWorker 、IndexedDB、WebSocket、Service Worker 如果是,父子嵌套 iframe 还可以使用 window.parent.postMessage(“需要传递的参数”, ‘*’) 1、localStorage 核心点 同源,不能跨域(协议、端…

在docker下安装suiteCRM

安装方法: docker-hub来源:https://hub.docker.com/r/bitnami/suitecrm curl -sSL https://raw.githubusercontent.com/bitnami/containers/main/bitnami/suitecrm/docker-compose.yml > docker-compose.yml//然后可以在docker-compose.yml文件里修…

Mysql词法分析实验(二)

表名叫select123能不能创建一个表? 在 MySQL 中,可以创建一个名为 select123 的表,但由于 SELECT 是 MySQL 的一个保留关键字,通常建议避免使用它作为表名的一部分,以防止潜在的解析错误或混淆。如果确实需要使用这样…

缓存穿透、缓存击穿、缓存雪崩

目录 一、缓存的概念 1.为什么需要把用户的权限放入redis缓存 2.为什么减低了数据库的压力呢? 3.那么什么情况下用redis,什么情况下用mysql呢? 4.关于权限存入redis的逻辑? 二、使用缓存出现的三大情况 1.缓存穿透 1.1概念 1.2出现原…

五年制专转本备考中如何进行有效的自我管理

时间管理 0 1 一天中的4个记忆黄金时间 清晨起床后,适合学习难以记忆的内容;8:00—10:00,适宜学习需要周密思考、分析判断的内容,是攻克难题的最佳时间;18:00后的两个小时&#x…

MXNet中图解稀疏矩阵(Sparse Matrix)的压缩与还原

1、概述 对于稀疏矩阵的解释,就是当矩阵里面零元素远远多于非零元素,且非零元素没有规律,这样的矩阵就叫做稀疏矩阵,反过来就是稠密矩阵,其中非零元素的数量与所有元素的比值叫做稠密度,一般稠密度小于0.0…