每天10个js面试题(六)

1、js数组方法?

  • Array.push()此方法是在数组的后面添加新加元素,此方法改变了数组的长度
  • Array.pop()此方法在数组后面删除最后一个元素,并返回数组,此方法改变了数组的长度
  •  Array.shift()此方法在数组后面删除第一个元素,并返回数组,此方法改变了数组的长度
  • Array.unshift()此方法是将一个或多个元素添加到数组的开头,并返回新数组的长度
  • Array.isArray()判断一个对象是不是数组,返回的是布尔值
  • Array.concat()此方法是一个可以将多个数组拼接成一个数组
  • Array.toString()把数组作为字符串返回
  • Array.join()以指定字符拼接成字符串,然后返回
  • Array.splice(开始位置, 删除的个数,元素)
  • Array.map()此方法是将数组中的每个元素调用一个提供的函数,结果作为一个新的数组返回,并没有改变原来的数组
  • Array.forEach()此方法是将数组中的每个元素执行传进提供的函数,没有返回值,直接改变原数组,注意和 map 方法区分
  • Array.filter()此方法是将所有元素进行判断,将满足条件的元素作为一个新的数组返回
  • Array.every()此方法是将所有元素进行判断返回一个布尔值,如果所有元素都满足判断条件,则返回 true,否则为 false:
  • Array.some()此方法是将所有元素进行判断返回一个布尔值,如果存在元素都满足判断条件,则返回 true,若所有元素都不满足判断条件,则返回 false:
  • Array.reduce()此方法是所有元素调用返回函数,返回值为最后结果,传入的值必须是函数类型

2、js字符串方法?

  • trim(): 去首尾空格
  • split(sep,limit):将字符串分割为字符数组,limit 为从头开始执行分割的最大数量
  • indexOf(str):返回 str 在父串中第一次出现的位置,若没有则返回-1
  • lastIndexOf(str):返回 str 在父串中最后一次出现的位置,若没有则返回-1
  • substr(start,length):从字符索引 start 的位置开始,返回长度为 length 的子串
  • substring(from,to):返回字符索引在 from 和 to(不含)之间的子串
  • slice(start,end):返回字符索引在 start 和 end(不含)之间的子串
  • toLowerCase():将字符串转换为小写
  • toUpperCase():将字符串转换为大写
  • replace(str1,str2):str1 也可以为正则表达式,用 str2 替换 str1
  • concat(str1,str2,...):连接多个字符串,返回连接后的字符串的副本
  • match(regex):搜索字符串,并返回正则表达式的所有匹配
  • charAt(index):返回指定索引处的字符串
  • charCodeAt(index):返回指定索引处的字符的 Unicode 的值
  • fromCharCode():将 Unicode 值转换成实际的字符串
  • search(regex):基于正则表达式搜索字符串,并返回第一个匹配的位置
  • valueOf():返回原始字符串值

3、js new操作符具体做了什么?

  • 在内存创建一个新对象
  • 把构造函数中this指向新建的对象
  • 会在新对象上添加一个__proto__属性,指向函数的原型对象prototype
  • 判断函数返回值,如果值是引用类型就直接返回值;否则返回this(创建的新对象)

4、js 深浅拷贝区别?

  • 浅拷贝的话,如果属性是基本类型,拷贝的就是基本类型的值。如果属性是引用类型,拷贝的就是内存地址。就是浅拷贝是拷贝一层,深层次的引用类型就是共享内存地址。
  • 深拷贝除了拷贝基本类型的值,还完全复刻了对象类型。就是开辟一个新的栈,两个对象属完成相同,但是对应两个不同的地址,修改一个对象的属性,不会改变另一个对象的属性。
  • 浅拷贝方法:Object.assign、Array.prototype.slice(), Array.prototype.concat()和 拓展运算符实现的复制
  • 深拷贝方法:最常用的就是JSON.stringify(),还有就是JQuery的jQuery.extend(),再就是lodash的_.cloneDeep(),或者手写循环递归了

5、js同步异步区别?

  • 同步: 下面代码会等待上面 同步代码执行完毕
  • 异步: 下面代码不会等待上面异步代码执行完毕
  • 同步:浏览器访问服务器请求,用户看得到页面刷新,重新发请求,等请求完,页面刷新,
  • 新内容出现,用户看到新内容,进行下一步操作
  • 异步:浏览器访问服务器请求,用户正常操作,浏览器后端进行请求。
  • 等请求完,页面不刷新,新内容也会出现,用户看到新内容

6、js为什么 JS 是单线程,  而不是多线程?

  • 单线程是指 JavaScript 在执行的时候,有且只有一个主线程来处理所有的任务。
  • 目的是为了实现与浏览器交互。
  • 我们设想一下,如果 JavaScript 是多线程的,现在我们在浏览器中同时操作一个
  • DOM,一个线程要求浏览器在这个 DOM 中添加节点,
  • 而另一个线程却要求浏览器删掉这个 DOM 节点,
  • 那这个时候浏览器就会很郁闷,他不知道应该以哪个线程为准。
  • 所以为了避免此类现象的发生,降低复杂度,JavaScript
  • 选择只用一个主线程来执行代码,以此来保证程序执行的一致性。

7、js严格模式的使用与作用?

  • 在代码前面使用"use strict"就可以开启严格模式;
  •     作用:
  • 消除 Javascript 语法的一些不合理、不严谨之处,减少一些怪异行为;
  • 消除代码运行的一些不安全之处,保证代码运行的安全;
  • 提高编译器效率,增加运行速度;
  • 为未来新版本的 Javascript 做好铺垫。
  •     特点:
  • 变量必须要通过修饰符进行声明
  • 函数的参数不能有同名属性,否则报错
  • 禁止 this 指向全局对象
  • 增加了保留字(比如 protected 、 static 和 interface )
  • 不能删除变量 delete prop

8、js线程与进程的区别?

  • 一个程序至少有一个进程, 一个进程至少有一个线程。
  • 线程的划分尺度小于进程,使得多线程程序的并发性高。
  • 进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。
  • 线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,
  • 由应用程序提供多个线程执行控制。从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理以及资源分配。这就是进程和线程的重要区别。

9、Promise.all() 原理?

  • Promise.all() 是一个内置的辅助函数,它接收一个包含多个 Promise 的可迭代对象作为参数,并返回一个新的 Promise。
  • 这个新的 Promise 在传入的所有 Promise 都成功解决时才会成功解决,并将所有 Promise 的解决值按顺序组成的数组作为结果;
  • 如果任何一个 Promise 被拒绝,则返回的 Promise 会立即被拒绝,并传递第一个被拒绝 Promise 的拒绝原因。

10、Promise.all()实现根据传入url顺序, 返回按序结果?

  • 用参数数组下标用来保证按序存储,循环的时候用变量记录和保证获取到了想要的所有数据,就比如说定义一个count循环的时候count++,起一个计数的作用,
  • 确保所有传入的 Promise 都被成功处理后,才会触发 resolve(res),解决返回的 Promise。这样可以保证返回的 Promise 在所有传入的 Promise 都完成后才会被解决,返回结果数组中的顺序也与传入的 Promise 数组保持一致。

      

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

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

相关文章

消息会话—发送消息自动滚动到最底部

背景 在项目开发中,实现用户友好的输入交互是提升用户体验的关键之一。例如,在消息会话页面中,为了确保用户在发送新消息后页面能自动滚动到最底部,从而始终保持最新消息的可见性,需要实现自动滚动功能。这不仅提升了…

Spring Boot集成:高效论坛网站的构建

1系统概述 1.1 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及,互联网成为人们查找信息的重要场所,二十一世纪是信息的时代,所以信息的管理显得特别重要。因此,使用计算机来管理论坛网站的相关信息成为必然。开发合适的论…

【GISBox使用指南】免费实现影像切片的工具,还支持多种格式服务发布!

一、什么是影像数据? 在地理信息系统中,影像数据是指通过遥感技术、摄影测量或其他成像手段获取的,以数字形式存储的地理空间图像信息。这些数据涵盖了从卫星遥感影像、航空摄影影像到地面摄影影像等多种类型,在GIS中的应用广泛而…

知乎付费投流怎么做?如何投放知乎广告?

知识经济背景下,知乎凭借其高质量的内容和精准的用户群体,成为了品牌营销的新蓝海。作为国内领先的知识分享平台,知乎汇聚了大量高学历、高收入、高消费能力的用户,他们对新知识、新产品有着强烈的好奇心和探索欲,是品…

成功解决pycharm软件中按住Ctrl+点击指定函数却不能跳转到对应库中的源代码

成功解决pycharm软件中按住Ctrl点击指定函数却不能跳转到对应库中的源代码 目录 解决问题 解决方法 解决问题 在pycharm软件中按住Ctrl点击指定函数却不能跳转到对应库中的源代码 解决方法

github pages + hugo 搭建静态博客网站

体验地址 1. 起因, 目的: 其实6年前,我就写过这个。 项目代码 博客地址 最近想改写一下。 github 推荐的主题是 Jekyll, 我当时用的就是这个,感觉很麻烦。尤其是文章命名。 新的主题 hugo 用起来还行。 2.过程: 过程记录&am…

比较相同机器上 redis和mysql分别单独承载的 最大连接数量

在相同的机器上,Redis 和 MySQL 的最大连接数量会受到硬件配置(如 CPU、内存、网络等)、配置参数和应用场景的影响。以下是对 Redis 和 MySQL 在单机环境下最大连接数的比较: Redis 最大连接数量 默认配置: Redis 默…

轻松掌握Win10录屏技巧:四大神器推荐!

在Win10系统中,录屏功能的应用越来越广泛,无论是用于工作演示、在线教学还是游戏分享,一款好用的录屏软件都是必不可少的。今天,我们将推荐四款录屏工具! 福昕录屏大师 直达链接:www.foxitsoftware.cn/RE…

iOS--利用UITableViewDataSourcePrefetching实现平滑如丝的无限滚动

前言: 相信大家在网络不好的时候使用列表分页的App会获得非常不好的体验,由于网络的问题,会有明显的卡顿,就像抖音等App,那么我们是否能使用一些手段来优化这个体验呢?这里可以用到UITableView中另一个协议…

Linux Debian12基于ImageMagick图像处理工具编写shell脚本用于常见图片png、jpg、jpeg、tiff格式批量转webp格式

在Linux系统中,使用ImageMagick可以图片格式转换,其中最常用的是通过命令行工具进行。 ImageMagick是一个非常强大的图像处理工具集,它包含了许多用于图像转换的命令。 一、安装ImageMagick(如果尚未安装)&#xff1…

蓝牙资讯|iOS 18.1 正式版下周推送,AirPods Pro 2耳机将带来助听器功能

苹果公司宣布将在下周发布 iOS 18.1 正式版,同时确认该更新将为 AirPods Pro 2 耳机带来新增“临床级”助听器功能。在启用功能后,用户首先需要使用 AirPods 和 iPhone 进行简短的听力测试,如果检测到听力损失,系统将创建一项“个…

MoCoOp: Mixture of Prompt Learning for Vision Language Models

文章汇总 当前的问题 1)数据集风格变化。 如图1所示,对于一个数据集,单个软提示可能不足以捕获数据中呈现的各种样式。同一数据集中的不同实例可能与不同的提示符兼容。因此,更**自然的做法是使用多个提示来充分表示这些变化**。 2)过拟合…

101. UE5 GAS RPG 实现范围技能奥术爆发表现

在上一篇文章里,我们实现了范围技能的范围指示功能。范围指示是在释放技能前,确认技能的攻击范围,在确认位置后,通过额外按键进行触发技能释放。 在这一篇里,我们将先实现在技能里使用范围指示,并能够播放对…

硬件基础知识补全计划【一】电阻

一、电阻理论 1.1 电流定义 电流:电流的强弱用电流强度来描述,电流强度是单位时间内通过导体某一横截面的电荷量,简称电流,用I表示。1 秒内有 6.241509310^18 个元电荷通过横截面的电流,定义为 1 安 (A)。 电压&…

Redis Search系列 - 第四讲 支持中文

目录 一、支持中文二、自定义中文词典2.1 Redis Search设置FRISOINI参数2.2 friso.ini文件相关配置1)自定义friso UTF-8字典2)修改friso.ini配置文件 三、实测中文分词效果 一、支持中文 Redis Stack 从版本 0.99.0 开始支持中文文档的添加和分词。中文…

MoeCTF 2024 ---Misc方向WP

安全杂项 signin 题目描述: xdsec的小伙伴们和参赛者来上课,碰巧这一天签到系统坏了,作为老师的你,要帮他们 教师代签。 特殊提醒:luo同学今天好像在宿舍打游戏,不想来上课,这是严重的缺勤行为…

PoissonRecon学习笔记

1. Screened Poisson Reconstruction (SPR) 源码:https://github.com/mkazhdan/PoissonRecon However, as noted by several researchers, it suffers from a tendency to over-smooth the data. 泊松重建存在过度平滑的现象。 方法:position and gradi…

【QT】QChart绘制曲线与散点图

功能描述:绘制曲线和散点图,添加图例信息,可以进行缩放、移动,鼠标在曲线上时显示当前坐标点 QChart功能类 继承QGraphicsView 重写鼠标事件函数 protected:void resizeEvent(QResizeEvent *event);void mouseMoveEvent(QMouseEvent *event);void mousePressEvent(QMouseEv…

C++共同体

共同体是一种数据格式,他能储存不同的数据类型,但是同一时间只能储存其中的一种类型。 语法: union 共同体名 { 成员一的数据类型 成员名一; 成员二的数据类型 成员名二; 成员n的数据类型 成员名n; }

PHP养老院管理系统-计算机设计毕业源码-00115

摘要 随着社会老龄化进程的加速,养老院管理系统在提高养老服务质量和效率方面发挥着越来越重要的作用。本研究旨在设计和实现一个基于PHP的养老院管理系统,以满足养老院的日常管理需求,提升养老服务水平。 本研究首先对养老院管理系统的需求进…