当前位置: 首页 > news >正文

公司面试题总结(二)

7. 说说 JavaScript 中的数据类型?存储上的差别?

基本类型:

        o Number
        o String
        o Boolean
        o Undefined
        o null
        o symbol

引用类型

        o Object
        o Array
        o Function

声明变量时不同的内存地址分配:

        o 简单类型的值存放在 中,在栈中存放的是对应的值
        o 引用类型对应的值存储在 中,在栈中存放的是指向堆内存的地址

不同的类型数据导致赋值变量时的不同:

        o 简单类型赋值 ,是生成相同的值,两个对象对应不同的地址
        o 复杂类型赋值
                ▪ 是将保存对象的内存地址赋值给另一个变量。
                ▪ 也就是两个变量指向堆内存中同一个对象

8. typeof 与 instanceof 区别 ,常见的数据类型有哪些,区 别是什么?

typeof 会返回一个变量的基本类型,instanceof 返回的是一个布尔值
instanceof 可以准确地判断复杂引用数据类型,但是不能正确判断基础数据类型
而 typeof 也存在弊端,它虽然可以判断基础数据类型(null 除外),但是引用数据类
型中,除了 function 类型以外,其他的也无法判断
JavaScript 中常用的数据类型判断方法有以下 5 种:
typeof 操作符:可以返回一个字符串,用于表明所操作数的类型。
instanceof 操作符:可以判断一个对象是否属于某个类(或其子类)。
Object.prototype.toString() 方法:可以返回一个表示调用它的对象所属类的字符串。
constructor 属性:可以返回对创建该对象的数组函数的引用。
Array.isArray() 方法:可以判断一个值是否为数组。
        这些方法的区别如下:
typeof 只能区分基本数据类型,不能区分具体的对象类型。
instanceof 只能用于判断对象类型,无法判断基本数据类型
Object.prototype.toString() 方法可以返回对象类型的具体字符串
constructor 属性可以返回对象所属类的构造函数
Array.isArray() 可以判断一个值是否为数组

9. 说说你对闭包的理解?闭包使用场景

闭包指在一个函数内部定义的函数可以访问外部函数作用域中的变量,即使外部函数已经执
行完毕,这种能力称为“闭包”。

优点:

封装变量:

创建私有变量和函数,这样可以避免全局命名冲突,提高代码的可维护性。

延长变量的生命周期:

外部函数执行完毕后,其内部变量不会被销毁,而是被内部函数持有
可以延长变量的生命周期,使得外部函数的变量在内部函数中仍然可用。

实现柯里化:

将接受多个参数的函数转化为接受单一参数的函数
并返回接受剩余参数的函数。

缺点:

内存泄漏:

持有对外部函数作用域的引用,如果这个引用被持续保留
那么外部函数中的变量就无法被释放,导致内存占用过高。

性能问题:

闭包会增加内存消耗和运行时的开销,因为需要维护额外的作用域链。
特别是在循环中使用闭包,可能会导致性能问题。

复杂性:

过度使用闭包可能会导致代码变得难以理解和维护,
闭包使得函数之间的关系变得更加复杂,增加了代码的复杂性和理解成本。

10.bind、call、apply 区别?如何实现一个 bind?

三者第一个参数都是 this 要指向的对象,如果没有这个参数或参数为 undefined 或
        null,则默认指向全局 window
三者都可以传参,但是 apply 是数组,而 call 是参数列表,且 apply 和 call 是一次性
        传入参数,而 bind 可以分为多次传入
bind 是返回绑定 this 之后的函数,apply、call 则是立即执行
实现 bind 的步骤,我们可以分解成为三部分:
        o 修改 this 指向
        o 动态传递参数
                // 方式一:只在 bind 中传递函数参数
                fn.bind(obj,1,2)()
                // 方式二:在 bind 中传递函数参数,也在返回函数中传递参数
                fn.bind(obj,1)(2)
        o 兼容 new 关键字
        Function.prototype.myBind = function (context) {
                // 判断调用对象是否为函数
                if (typeof this !== "function") {
                throw new TypeError("Error");
                }
                // 获取参数
                const args = [...arguments].slice(1),
                fn = this;
                return function Fn() {
                // 根据调用方式,传入不同绑定值
                return fn.apply(this instanceof Fn ? new fn(...arguments) : context,
               args.concat(...arguments));
        }
}

11.说说你对事件循环的理解,宏任务和微任务的理解?

JavaScript 是一门单线程的语言,意味着同一时间内只能做一件事,但是这并不意味着单线
程就是阻塞,而实现单线程非阻塞的方法就是 事件循环
在 JavaScript 中,所有的任务都可以分为:
同步任务:立即执行的任务,同步任务一般会直接进入到主线程中执行
异步任务:异步执行的任务,比如 ajax 网络请求,setTimeout 定时函数等
同步任务进入主线程,即主执行栈,
异步任务进入任务队列
主线程内的任务执行完毕为空,会去任务队列读取对应的任务,推入主线程执行。 上述过程的不断重复就事件循环

微任务

一个需要异步执行的函数,执行时机是主函数执行结束之后、当前宏任务结束之前
Promise.then
MutaionObserver
Object.observe(已废弃;Proxy 对象替代)
process.nextTick(Node.js)

宏任务

宏任务的时间粒度比较大,执行的时间间隔是不能精确控制的,对一些高实时性的
需求就不太符合
script (可以理解为外层同步代码)
setTimeout/setInterval
UI rendering/UI 事件
postMessage、MessageChannel
setImmediate、I/O(Node.js)
按照这个流程,它的执行机制是:
执行一个宏任务,如果遇到微任务就将它放到微任务的事件队列中
当前宏任务执行完成后,会查看微任务的事件队列,然后将里面的所有微任务依次执行

12.DOM 常见的操作有哪些?

DOM(文档对象模型) 是用于表示 HTML 和 XML 文档的树状结构,并且允许程序和脚
本动态地访问和更新文档内容、结构和样式。在 JavaScript 中,常见的 DOM 操作包括
但不限于以下几种:

文档对象模型 (DOM) :

HTML 和 XML 文档的编程接口
提供了对文档的结构化的表述
定义了一种方式可以使从程序中对该结构进行访问,从而改变文档的结构,样式和内容
任何 HTML 或 XML 文档都可以用 DOM 表示为一个由节点构成的层级结构
<p title="title">content</p >
p 就是元素节点,
content 就是文本节点,
title 就是属性节点

创建节点

createElement
创建新元素,接受一个参数,即要创建元素的标签名
const divEl = document.createElement("div");
createTextNode
创建一个文本节点
const textEl = document.createTextNode("content");
createDocumentFragment
用来创建一个文档碎片,它表示一种轻量级的文档,主要是用来存储临时节
点,然后把文档碎片的内容一次性添加到 DOM 中 const fragment = document.createDocumentFragment();
当 请 求 把 一 个 DocumentFragment 节点插入文档树时,插入的不
是 DocumentFragment 自身,而是它的所有子孙节点
createAttribute
创建属性节点,可以是自定义属性
const dataAttribute = document.createAttribute('custom');

获取节点

document. getElementById ('id 属性值');返回拥有指定 id 的对象的引用
document. getElementsByClassName ('class 属性值');返回拥有指定 class 的对象集
document. getElementsByTagName ('标签名');返回拥有指定标签名的对象集合
document. getElementsByName ('name 属性值'); 返回拥有指定名称的对象结合
document/element. querySelector ('CSS 选择器'); 仅返回第一个匹配的元素
document/element. querySelectorAll ('CSS 选择器'); 返回所有匹配的元素
document. documentElement ; 获取页面中的 HTML 标签
document. body ; 获取页面中的 BODY 标签
document. all ['']; 获取页面中的所有元素节点的对象集合型
除此之外,每个DOM 元素还有parentNode、childNodes、firstChild、lastChild、nextSibling、
previousSibling 属性

更新节点

innerHTML
不但可以修改一个 DOM 节点的文本内容
还可以直接通过 HTML 片段修改 DOM 节点内部的子树
innerText、textContent
自动对字符串进行 HTML 编码,保证无法设置任何 HTML 标签
innerText 不返回隐藏元素的文本,
textContent 返回所有文本
style
DOM 节点的 style 属性对应所有的 CSS,可以直接获取或设置。
遇到-需要转化为驼峰命名

添加节点

innerHTML
如果这个 DOM 节点是空的,直接使用 innerHTML = '<span>child</span>'
修改 DOM 节点的内容,相当于添加了新的 DOM 节点
appendChild
把一个子节点添加到父节点的最后一个子节点
insertBefore
把子节点插入到指定的位置,使用方法如下:
parentElement.insertBefore(newElement, referenceElement)
setAttribute(属性名,属性值)
在指定元素中添加一个属性节点,如果元素中已有该属性改变属性值

删除节点

调用父节点的 removeChild 把自己删掉
删除后的节点虽然不在文档树中了,但其实它还在内存中,可以随时再次被添加到 别的位置

替换节点:

parentNode. replaceChild (newNode, oldNode): 替换一个子节点为新的节点。

查找相邻节点:

element. nextElementSibling : 获取当前元素的下一个兄弟元素。
element. previousElementSibling : 获取当前元素的上一个兄弟元素。

获取元素尺寸和位置:

element. offsetWidth 和 element. offsetHeight : 获取元素的布局宽度和高度,包
含边框和内边距。
element. clientWidth 和 element. clientHeight : 获取元素内容区的宽度和高度,
不包括滚动条、边框和外边距。
element. getBoundingClientRect (): 获取元素相对于视口的位置和尺寸信息。

事件处理:

element. addEventListener (eventType, callback): 给元素添加指定事件类型的监听
器。
element. removeEventListener (eventType, callback): 移除元素指定事件类型的监
听器。

相关文章:

公司面试题总结(二)

7. 说说 JavaScript 中的数据类型&#xff1f;存储上的差别&#xff1f; • 基本类型&#xff1a; o Number o String o Boolean o Undefined o null o symbol • 引用类型 o Object o Array o Function • 声明变量时不同的内存地址分配&#xff1a; o 简单类型的…...

人脸识别和 ArcFace:用于深度人脸识别的附加角边际损失

在本文中,您将发现一种 ArcFace 方法,该方法可获得用于人脸识别的高分辨特征。阅读本文后,你将了解: 人脸识别任务如何工作。如何计算人脸匹配。SoftMax 和 ArcFace 的直观区别。ArcFace 的几何解释。ArcFace 背后的数学原理本文假定您已经熟悉用于多类分类、检测和 SoftMax…...

双标引领:汽车软件安全的ASPICE与ISO21434之道

随着汽车行业的飞速发展&#xff0c;尤其是智能化、网联化趋势的加剧&#xff0c;汽车软件开发的复杂性和安全性需求日益提升。在这样的背景下&#xff0c;ASPICE标准和ISO21434安全标准应运而生&#xff0c;为汽车软件的开发和管理提供了坚实的支撑。 ASPICE&#xff08;Auto…...

再度牵手,制造升级 | 毅达科技IMS OS+通用产品集+行业套件项目正式启动!

在数字化与智能制造的浪潮中&#xff0c;制造业企业纷纷加快转型步伐&#xff0c;力求通过技术创新实现生产效率与质量的双重提升。近日&#xff0c;广东毅达医疗科技股份有限公司&#xff08;以下简称“毅达科技”&#xff09;再次携手盘古信息&#xff0c;正式启动了IMS 数字…...

大疆智图_空三二维重建成果传输

一、软件环境 1.1 所需软件 1、 大疆智图&#xff1a;点击下载&#xff1b;   2、 ArcGIS Pro 3.1.5&#xff1a;点击下载&#xff0c;建议使用IDM或Aria2等多线程下载器&#xff1b;   3、 IDM下载器&#xff1a;点击下载&#xff0c;或自行搜索&#xff1b;   4、 Fas…...

python实现无人机航拍图片像素坐标转世界坐标

背景 已知相机参数&#xff08;传感器宽度和高度、图像宽度和高度、焦距、相对航高、像主点坐标 &#xff09;&#xff0c;在给定像素坐标的前提下&#xff0c;求世界坐标&#xff0c;大部分通过AI来实现&#xff0c;不知道哪个步骤有问题&#xff0c;望大家指正 脚本 impor…...

C#面:什么是 Windows 服务,它的生命周期与标准的 EXE 程序有什么不同

C#中的Windows服务是一种在后台运行的长时间运行的应用程序&#xff0c;它可以在Windows操作系统启动时自动启动&#xff0c;并在系统运行期间持续运行。与标准的EXE程序相比&#xff0c;Windows服务具有以下不同之处&#xff1a; 生命周期&#xff1a;Windows服务的生命周期与…...

Java基础面试题自测

文章目录 一、Java 中有哪 8 种基本数据类型&#xff1f;说说这 8 种基本数据类型对应的包装类型&#xff1f;二、包装类型的常量池技术了解么&#xff1f;三、为什么要有包装类型&#xff1f;四、什么是自动拆装箱&#xff1f;原理&#xff1f;四、遇到过自动拆箱引发的 NPE 问…...

【LeetCode 第 401 场周赛】K秒后第 N 个元素的值

文章目录 1. K秒后第 N 个元素的值&#x1f197; 1. K秒后第 N 个元素的值&#x1f197; 题目链接&#x1f517; &#x1f427;解题思路&#xff1a; 前缀和 小规律&#x1f34e; &#x1f34e; 从上图观察可知&#xff0c;规律一目了然&#xff0c;arr[i] arr[i] 对上一…...

游戏心理学Day10

习得性动机。 习得性动机也称社会性动机是指人与社会生活相联系的后天习得的动机&#xff0c;这类动机比原发性动机要多很多。 成就动机。 成就动机是指个人追求进步以及达到目标的内在动力。 在游戏中设计师总会担心过多的失败&#xff0c;会令玩家感到挫败进而离开游戏 对…...

MySQL表设计经验汇总篇

文章目录 1、命名规范2、选择合适的字段类型3、主键设计要合理4、选择合适的字段长度5、优先考虑逻辑删除&#xff0c;而不是物理删除6、每个表都需要添加通用字段7、一张表的字段不宜过多8、定义字段尽可能not null9、合理添加索引10、通过业务字段冗余来减少表关联11、避免使…...

Servlet基础(续集2)

HttpServletResponse web服务器接收到客户端的http的请求&#xff0c;针对这个请求&#xff0c;分别创建一个代表请求的HttpServletRequest对象&#xff0c;代表响应的一个HttpServletResponse 如果要获取客户端请求过来的参数&#xff1a;找HttpServletRequest如果要给客户端…...

【云原生】创建harbor私有仓库及使用aliyun个人仓库

1.安装docker #删除已有dockersystemctl stop docker yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine #安装docker yum install -y docker-ce-20.10.1…...

什么是SOLIDWORKS科研版

随着科技的不断进步&#xff0c;工程设计和科学研究变得越来越复杂&#xff0c;需要更强大的工具来满足需求。SOLIDWORKS科研版就是在这样的背景下诞生的&#xff0c;它为科研人员和工程师提供了一套全方面、快捷的解决方案&#xff0c;以应对各种科研和工程挑战。 SOLIDWORKS科…...

微信小程序页面配置

页面配置 小程序的配置可以配置页面路径、窗口表现、tabBar等&#xff0c;分为全局配置和页面配置&#xff0c;全局配置针对所有页面生效&#xff0c;页面配置只针对当前页生效。 全局配置 (app.json) (1) 路径配置 pages 配置页面路径&#xff0c;未配置路径的页面无法被访…...

如何将JPG/PNG位图免费快速一键转换成SVG格式的矢量图

环境&#xff1a; JPG/PNG位图 问题描述&#xff1a; 如何将JPG/PNG位图快速一键转换成SVG格式的矢量图 解决方案&#xff1a; 是一个人工智能驱动的图片转换工具&#xff0c;可以帮助用户将」JPG/PNG位图快速转换成SVG格式的矢量图&#xff0c;方便设计人员对图片进行二次…...

YOLO检测环境安装配置

YOLO介绍 YOLO学习手册&#xff1a;YOLO教程 YOLO [ˈjoʊloʊ]&#xff08;You Only Look Once&#xff09;是一种快速而准确的目标检测算法&#xff0c;由Joseph Redmon等人在2016年提出。YOLO被广泛应用于计算机视觉领域&#xff0c;包括实时视频分析、自动驾驶、安防监控、…...

NOSQL -- ES

第三个我们比较常用的NOSQL类型的数据库 --- ES 介绍: ES的全称(Elasticsearch) ES是一个分布式全文搜索的引擎 也就是我们平常在购物, 搜索东西的时候常用的, 就是一个ES的类型, 分布式全文搜索引擎 查询原理: 1>分词: 在查询之前, 其会将一些数据拆分开, 按照词进行拆分…...

【Python基础】名称空间和作用域

1.名称空间 将栈区进行分类&#xff0c;这些分类就是名称空间 名称空间存放什么名字空间个数何时创建&销毁内置名称空间built-inPython解释器内置的名字1个Python解释器启动&解释器关闭 全局名称空间 global Python文件内定义的类名&#xff0c;变量名&#xff0c;模块…...

安全智能预警软件有人试图窃取会立即发出高分贝警报已解锁VIP功能

一款手机安全智能预警软件&#xff0c;无论是网吧还是餐馆小聚&#xff0c;您的手机都能得到贴心的守护&#xff0c;一旦有人试图窃取&#xff0c;应用会立即发出高分贝警报&#xff0c;确保您在公交、地铁、商场等拥挤环境中依然能牢牢掌控手机。&#xff08;解锁专业版&#…...

DeepSORT(目标跟踪算法)中自由度决定卡方分布的形状

DeepSORT&#xff08;目标跟踪算法&#xff09;中自由度决定卡方分布的形状 flyfish 重要的两个点 自由度决定卡方分布的形状&#xff08;本文&#xff09; 马氏距离的平方在多维正态分布下服从自由度为 k 的卡方分布 独立的信息 在统计学中&#xff0c;独立的信息是指数据…...

cordic IP核中,sin and cos的使用

参考视频&#xff1a;FPGA IP之CORDIC_哔哩哔哩_bilibili FPGA IP之CORDIC使用与仿真_哔哩哔哩_bilibili 一、参数说明 functional selection rotate是旋转&#xff0c;sin and cos是计算这两个三角函数&#xff0c;sinh和cosh是计算双曲正弦和双曲余弦 phase format 对于…...

SpringSecurity入门(三)

12、密码加密 12.1、不指定具体加密方式&#xff0c;通过DelegatingPasswordEncoder&#xff0c;根据前缀自动选择 PasswordEncoder passwordEncoder PasswordEncoderFactories.createDelegatingPasswordEncoder();12.2、指定具体加密方式 // Create an encoder with streng…...

luogu-P10570 [JRKSJ R8] 网球

题目传送门&#xff1a; [JRKSJ R8] 网球 - 洛谷https://www.luogu.com.cn/problem/P10570 解题思路 数学问题&#xff0c;暴力这个范围会超时。 首先&#xff0c;找出这两个数的最大公因数&#xff0c;将这两个数分别除以最大公因数&#xff0c;则这两个数互质&#xff0c;判…...

ASP.NET的WebService跨域CORS问题解决方案

ASP.NET WebService 跨域(CORS, Cross-Origin Resource Sharing)问题通常发生在当您尝试从不同的源(域名、协议或端口)调用 WebService 时。浏览器由于安全原因,默认会阻止此类跨域请求。为了解决这个问题,您需要在 WebService 服务器端配置 CORS。 以下是在 ASP.NET We…...

大众点评全国爱车店铺POI采集177万家-2024年5月底

大众点评全国爱车店铺POI采集177万家-2024年5月底 店铺POI点位示例&#xff1a; 店铺id H69Y6l1Ixs2jLGg2 店铺名称 HEEJOO豪爵足道(伍家店) 十分制服务评分 7.7 十分制环境评分 7.7 十分制划算评分 7.7 人均价格 134 评价数量 2982 店铺地址 桔城路2号盛景商业广场1-3…...

【文献阅读】LORA: LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS

目录 1. motivation2. overall3. model3.1 low rank parametrized update matrices3.2 applying lora to transformer 4. limitation5. experiment6. 代码7. 补充参考文献 1. motivation 常规的adaptation需要的微调成本过大现有方法的不足&#xff1a; Adapter Layers Introd…...

Rust学习06:使用CSDN的AI工具“C知道”分析代码错误

朋友们&#xff0c;我最近真的是在绝望的边缘了&#xff01; Rust咋这么蓝涅&#xff01; 资料咋这们少涅&#xff01; 记得学Python的时候&#xff0c;基本上你遇到的所有问题都可以在书上或者网上找到答案&#xff0c;中文世界找不到那么在英文世界一定能找到答案。 我猜&…...

MeiliSearch-轻量级且美丽的搜索引擎

MeiliSearch-轻量级且美丽的搜索引擎 MeiliSearch 是一个功能强大、快速、开源、易于使用和部署的搜索引擎。它具有以下特点&#xff1a; 支持中文搜索&#xff1a;MeiliSearch 对中文有良好的支持&#xff0c;不需要额外的配置。高度可定制&#xff1a;搜索和索引都可以高度…...

python使用wkhtmltopdf将html字符串保存pdf,解决出现方框的问题

出现的问题&#xff1a; 解决办法&#xff1a; <html> <head><meta charset"UTF-8"/> </head> <style> * {font-family: Arial,SimSun !important; } </style> </html>在html字符串前面加上上面代码&#xff0c;意思是设…...

上海医疗 网站制作/地推app

首先我们需要知道的是&#xff0c;对于测试这个行业而言&#xff0c;技术岗只有这几个大体的方向&#xff1a; 功能、性能、安全、测开。 其中&#xff0c;接口测试是最好的学习方向。 为什么呢&#xff0c;因为接口测试在上面的四个阶段里都囊括在内&#xff0c;是一款面对市场…...

郑州小程序开发多少钱/宁波seo营销

C中的::的作用 2018-06-08 13:47:46 一米阳光-ing 阅读数 8036更多 分类专栏&#xff1a; C/C (1)作用域限定符&#xff0c;当在类体中直接定义函数时&#xff0c;不需要在函数名字的前面加上类名&#xff0c;但是在类体外实现函数定义的时候&#xff0c;必须加上类名并且加…...

开发软件网站建设/网络推广工具有哪些

介绍编写一个应用程序并行运行很困难&#xff0c;对吧&#xff1f;我的意思是&#xff0c;它一定很难&#xff0c;否则我们会看到各处的并行程序。我们所看到的都是平滑的并行应用程序&#xff0c;可以毫不费力地使用每个可用的核心。相反&#xff0c;多线程应用程序是例外而不…...

怎样用阿里云服务器做网站/宁波seo优化排名

https://blog.csdn.net/weixin_33923762/article/details/91556576...

建设网站的3个必要条件/seo是什么软件

根据《网络世界》报道&#xff1a; 搜索巨人Google于7月21日发布了2006年第二财季财报&#xff0c;因为成功躲避了影响雅虎和易趣的行业增长减缓趋势&#xff0c;Google利润增长达到了110%。尽管Google的增长依然强劲&#xff0c;甚至高出华尔街分析师的预测&#xff0c;但这并…...

wordpress主机cdn/爱站网关键词查询系统

复习方法(原创经验) 本复习方法是针对过了六级或者专四的同学&#xff0c;至少雅思要6分以上。如果你没过四级&#xff0c;请考pets3&#xff0c;如果你过了四级没过六级&#xff0c;请考pets4. 综合 推荐用书&#xff1a;《全国英语等级考试系列用书考核内容详析与辅助练习(第…...