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

手撕JS面试题大全一

冒泡排序

/* 两两比较 */
function bubleSort(arr) {var len = arr.lengthfor (let outer = len; outer >= 2; outer--) {for (let inner = 0; inner <= outer - 1; inner++) {if (arr[inner] > arr[inner + 1]) {[arr[inner], arr[inner + 1]] = [arr[inner + 1], arr[inner]]}}}return arr
}
console.log(bubleSort([1, 2, 5, 44, 56, 5, 85, 5]));/* 选择排序: 遍历自身以后的元素,最小的元素跟自己调换位置 */
function selectSort(arr) {var len = arr.lengthfor (let i = 0; i < len - 1; i++) {for (let j = 1; j < len; j++) {if (arr[i] > arr[j]) {[arr[i], arr[j]] = [arr[j], arr[i]];}}}return arr
}

解析URL

function parseUrl(url) {const urlObj = new URL(url)let query = {}for (let item of urlObj.search.slice(1).split('&').map(value => value.split('='))) {let name = item[0]let value = item[1]if (name.length) {query[name] = value}}urlObj.query = queryreturn {origin: urlObj.origin,protocol: urlObj.protocol,host: urlObj.hostname,port: urlObj.port,pathname: urlObj.pathname,search: urlObj.query,hash: urlObj.hash,}
}
console.log(parseUrl('https://www.naodi.com/path/?a=1&b=2#/hash'));

深拷贝和浅拷贝

深拷贝


方法一:JSON.parse(JSON.stringfy())方法二:function deepClone(obj) {let objClone = Array.isArray(obj) ? [] : {}if(obj && typeof obj === 'object') {for(key in obj) {if(obj.hasOwnProperty(key)) {if(obj[key] && typeof obj[key] == 'object') {objClone[key] = deepClone(obj[key])}else {objClone[key] = obj[key]}}}}return objClone
}

浅拷贝

Object.assign()

数组扁平化

方法一:
function flatten(arr) {return arr.reduce((prev, curr) => {return prev.concat(Array.isArray(curr) ? flatten(curr) : curr)}, [])
}
方法二:
function aaa(arr) {let res = []arr.map(item => {if (Array.isArray(item)) {res.concat(aaa(item))} else {res.push(item)}})return res
}

数组去重合并

function combine(){let arr = [].concat.apply([], arguments);  //没有去重复的新数组return Array.from(new Set(arr));
}var m = [1, 2, 2], n = [2,3,3];
console.log(combine(m,n)); 
https://developer.mozilla.org/zh-

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/from

实现new

function myNew(fun, ...arg) {// 创建一个新对象,并且隐士原型指向构造原型let obj = {__proto__ = fun.prototype}fun.apply(obj, arg)return obj
}new实例过程是改变this指向到构造函数

数组常用方法:

  • Array.isArray() 用于确定传递的值是否是一个 Array。
    
  • Array.of() 返回一个由参数组成的数组
    
  •  Array.from() 将数组对象转换为数组 不改变原对象 返回新数组
    
  •   pop() 删除数组最后一个元素(改变原数组) 返回被删除的元素
    
  •   shift() 删除数组的第一个元素 (改变原数组) 返回被删除的元素
    
  •  push() 向末尾添加元素(改变原数组) 返回添加后的length
    
  •   unshift() 向数组开头添加元素(改变原数组) 返回添加后数组的length
    
  •   reverse() 反转数组 改变原数组
    
  •   splice() 添加/删除/替换 当前数组改变
    
  •    sort() 数组排序 (改变原数组) 参数为规定排序的比较函数(非必填)
    
  •   copyWithin() 数组的指定位置复制[改变原数组、ES6]
    
  •   fill()数组的填充 [改变原数组、ES6]
    
  •    slice() 拷贝数组元素 [不改变原数组]
    
  •    join()将数组转换为字符串[不改变原数组]
    
  •    concat() 连接合并多个数组,返回新数组。[不改变原数组]
    
  •  toString() 方法可把数组转换为字符串,并返回结果。[不改变原数组]
    
  •   indexOf() 查找数组中某元素的第一个索引值。[不改变原数组] 如果没有就返回-1
    
  •   lastIndexOf() 逆向查找指定元素在数组中的第一个位置。[不改变原数组]
    
  •   includes() 查找数组是否包含某个元素。[不改变原数组,]
    
  •  map
    
  •  filter
    
  • reduce
    
  •   forEach
    
  • 等等等下次再详细解答~
    

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

CentOS 配置php环境

一.安装apache 1.安装apache yum install httpd2.修改配置文件 vi /etc/httpd/conf/httpd.conf将#ServerName www.example.com:80前面的#去掉 修改为ServerName localhost:80 3.添加端口,刷新配置,并查看确认 firewall-cmd --permanent --zonepublic --add-port80/tcp fire…...

测试技巧:弱网测试

弱网测试场景 当前APP网络环境比较复杂&#xff0c;网络制式有2G、3G、4G网络&#xff0c;还有越来越多的公共Wi-Fi。不同的网络环境和网络制式的差异&#xff0c;都会对用户使用app造成一定影响。另外&#xff0c;当前app使用场景多变&#xff0c;如进地铁、上公交、进电梯等…...

PMP哪里报名

首先了解下PMP考试时间&#xff0c;一年四次&#xff0c;正常情况是每年3、6、9、12月份考试&#xff1b; 其次了解PMP考试需要两次报名&#xff0c;分别是英文报名和中文报名&#xff1b;且两次报名通过后&#xff0c;才能正常考试。 下面分别介绍PMP英文报名和PMP考试中文报…...

PHP中使用ElasticSearch

PHP中使用ElasticSearch 使用cURL尝试ElasticSearch查看es基本信息列出所有的Index列举每个Index下的Type添加Index删除Index安装中文分词插件ik (安装完需要重启es)创建一个Index,并设置其结构和分词向Index增加记录POST方式(POST方式不需要传id,id随机生成)查看指定条目…...

Thread类的常用方法

Thread类的常用方法 void start(): 启动线程&#xff0c;并执行对象的run()方法run(): 线程在被调度时执行的操作static Thread currentThread()&#xff1a; 返回当前线程。在Thread子类中就 是this&#xff0c;通常用于主线程和Runnable实现类String getName(): 返回线程的名…...

浅谈设计模式(三)

前言 之前详细介绍了几种常用的设计模式&#xff0c;最后总结一下附上所有设计模式的类图以及六大设计原则 一、创建型 1.Factory Method&#xff08;工厂方法&#xff09; 定义&#xff1a;定义了一个创建对象的接口&#xff0c;但由子类决定要实例化的类是哪一个。工厂方法…...

AR增强现实让科技贴近生活

AR也叫增强现实&#xff0c;它是在1990年被正式提出的&#xff0c;在时间上要比VR虚拟现实技术晚一些&#xff0c;它的实现主要通过三维空间、场景交融、现实视频等技术相互作用、融合实现的。 AR增强现实技术在工业领域中&#xff0c;有着超强的适用性&#xff0c;假设某件工…...

教你怎么才能删除百度负面新闻

互联网技术有时是一把双刃刀&#xff0c;我们可以运用它来对企业品牌形象、商品、知名品牌等开展宣传推广&#xff0c;殊不知竞争者亦能够运用它来对公司开展故意污蔑来减少敌人在制造行业里的权重值和权威性&#xff0c;进而给消费者行为引入一些对公司欠佳的信息内容&#xf…...

c++程序设计中虚基类,多继承知识点

一.前言 如上 二.题目 分别声明Teacher(教师)类和Cadre(干部)类&#xff0c;采用多重继承方式由这两个类派 生出新类Teacher_Cadre(教师兼干部&#xff09;类。要求&#xff1a; &#xff08;1)在两个基类中都包含姓名、年龄、性别、地址、电话等数据成员。 &#xff08;2&a…...

FFmpeg:avcodec_encode_video()

本文简单分析FFmpeg的avcodec_encode_video2()函数。该函数用于编码一帧视频数据。avcodec_encode_video2()函数的声明位于libavcodec\avcodec.h&#xff0c;如下所示。 /*** Encode a frame of video.** Takes input raw video data from frame and writes the next output p…...

SpringBoot中必须掌握的45个注解

1.SpringBoot/spring SpringBootApplication: 包含Configuration、EnableAutoConfiguration、ComponentScan通常用在主类上&#xff1b; Repository: 用于标注数据访问组件&#xff0c;即DAO组件&#xff1b; Service: 用于标注业务层组件&#xff1b; RestController: …...

侯捷CPP---面向对象(上)

侯捷CPP---面向对象&#xff08;上&#xff09;前言头文件防卫式声明class 分类不带指针的class&#xff08;complex&#xff09;成员变量私有化inline function&#xff08;内联函数&#xff09;构造函数常量成员函数参数传递返回值传递友元函数操作符重载临时对象带指针的cla…...

使用注解开发

1&#xff1b; 2.mapper 2.测试...

苏宁易购启动六一宝宝节,首提“共情消费”

5月26日晚8点&#xff0c;苏宁易购六一宝宝节掰头大会在多个平台播出。六一宝宝节全面启动。 六一宝宝节定位于打破营销套路&#xff0c;打破传统电商促销节奏。它是大促&#xff0c;更是一场成年人释放压力、共情消费的盛典。 掰头大会灵魂辩题 开启宝宝节 六一宝宝节的启…...

设计一个windows应用程序,定义一个Student类,包含学号和姓名两个字段,并定义一个班级类ClassList

设计一个windows应用程序&#xff0c;定义一个Student类&#xff0c;包含学号和姓名两个字段&#xff0c;并定义一个班级类ClassList&#xff0c;该类包含一个Student集合&#xff0c;使用索引器访问该集合。 &#xff08;1&#xff09;创建一个Windows应用程序Myproject6_1。 …...

HTML表单标签,已拿offer附真题解析

前言 校招 -1 年 这个阶段还属于成长期&#xff0c;更需要看重的是你的基础和热情。对于 JS 基础&#xff0c;计算机基础&#xff0c;网络通信&#xff0c;算法等部分的要求会相对高一些。毕竟这个阶段比较难考察你的业务项目中的沉淀&#xff0c;所以只能从基础部分入手考察。…...

python笔记19年8月23日

-------------py打包exe教程------------ 准备好需要转换的py文件和一张用于做图标.ico的照片 将他们存放于同一个文件夹中,文件的路径全部为英文路径 1.利用cmd窗口安装pyinstaller插件 指令 :pip install pyinstaller 2.使用cd指令到py文件夹 3.执行命令 pyinstaller -F -i X…...

系统集成模拟3-55分

1、合同法律关系是指由合同法律法规调整的在民事流转过程中形成的&#xff08;权利义务关系&#xff09; 2、当已经采取了多种沟通方式还未能与用户达成一致时&#xff0c;应考虑沟通升级原则-双方高层沟通 3、数据域安全包括&#xff1a;行级数据域安全&#xff0c;数据域安全…...

Centos7 配置DHCP

实验内容及步骤 1、实验背景 某企业计划构建一台 DHCP服务器来解决IP地址动态分配的问题&#xff0c;要求能够分配 IP地址以及网关、DNS等其它网络属性信息。同时要求DHCP服务器为DNS、WEB、Samba服务器分配固定IP 地址。 2、网络拓扑 略. 3、实验环境 假设企业DHCP服务器…...

JVM常见配置汇总

堆设置 -Xms:初始堆大小-Xmx:最大堆大小-XX:NewSizen:设置年轻代大小-XX:NewRation:设置年轻代和年老代的比值。如:为3&#xff0c;表示年轻代与年老代比值为1&#xff1a;3&#xff0c;年轻代占整个年轻代年老代和的1/4-XX:SurvivorRation:年轻代中Eden区与两个Survivor区的比…...

无基础也可以了解,NVIC中断优先级分组

STM32f103系列具有60个可屏蔽的中断&#xff0c;数量较多&#xff0c;所以需要对中断进行管理。 STM32可以将中断分为5组&#xff0c;如下表。 组号分配结果00位抢占优先级&#xff0c;4位相应优先级11位抢占优先级&#xff0c;3位相应优先级22位抢占优先级&#xff0c;2位相…...

基于51单片机的温度报警系统

目录 前言 一、温控系统是什么&#xff1f; 二、设计目的 1.环境需求 2.设计基础 三、设计 1.C51程序设计 2.Proteus仿真 &#xff08;1&#xff09;.元器件如下 &#xff08;2&#xff09;.原理图。 总结 前言 微型计算器自20世纪70年代诞生以来&#xff0c;得以迅…...

QT大作业:学生管理系统(通过mysql数据库)

一、前言 学校实验室进行第二轮考核&#xff0c;第二次qt作业是学生管理系统。 要求如下&#xff1a; 1、连接数据库&#xff0c;对学生信息进行增删改查操作&#xff0c;可以使用qt的SQLITE&#xff0c;但大家需自行学习sql语句的语法才能实现相关功能&#xff08;建议使用MY…...

程序员如何快速成长

如何快速成长 每个程序员都是从菜鸟成长过来&#xff0c;我自己也不例外。以下是我个人一些总结和结合网上别人的经验&#xff0c;希望对大家有帮助&#xff01; 主动学习 保持危机感 35岁后你能做什么&#xff1f;为何同龄人已经是行业专家&#xff1f; 对知识保持好奇心 多…...

【MyBatis详解】——从Xml配置解析到SQL执行过程

目录整体架构与使用DemoMybatis核心流程1. 创建SqlSessionFactory配置解析——SQL解析&#xff08;存储MappedStatement到Configuration中&#xff09;SqlNodeMappedStatementSqlSourceBoundSql2. 创建SqlSessionSqlSessionExecutor3. 获取Mapper4. 通过Mapper接口调用CRUD方法…...

MVC三层架构

什么是MVC&#xff1a; Model view Controller 模型、视图、控制器 1.以前的架构模型 用户直接访问控制层&#xff0c;控制层就可以直接操作数据库&#xff1b; servlet--CRUD-->数据库 弊端&#xff1a;程序十分臃肿&#xff0c;不利于维护 servlet的代码中&#xff1a…...

天眼查怎么删除信息_天眼查删除信息的方法介绍

天眼查信息怎么删除 天眼查风险信息怎么清除 天眼查问答信息怎么删除 天眼查法律诉讼信息可以删吗 天涯查上的信息删除怎么操作&#xff0c;天眼查成立于2014年&#xff0c;至今发展迅速&#xff0c;已经帮助了无数的企业和消费者&#xff0c;那么很多企业的天眼查信息有时候需…...

教你怎么才能删除百度负面新闻

互联网技术有时是一把双刃刀&#xff0c;我们可以运用它来对企业品牌形象、商品、知名品牌等开展宣传推广&#xff0c;殊不知竞争者亦能够运用它来对公司开展故意污蔑来减少敌人在制造行业里的权重值和权威性&#xff0c;进而给消费者行为引入一些对公司欠佳的信息内容&#xf…...

select使用实例

select函数是多路复用的一种&#xff0c;本文我们给出一个select的通信实例&#xff0c;看下select的代码如何组织&#xff0c;先上代码&#xff1a; #include <unistd.h> #include <iostream> #include <string> #include <sys/socket.h> #include &…...

mysql主从同步可以同步哪些资源

概述 mysql主从同步可以同步哪些资源&#xff1f;视图、存储过程、存储函数、触发器等这些资源到底能不能同步呢&#xff0c;这里我们做一下深入研究&#xff0c;通过查看binlog日志的方式解析每个操作。 做实验前需要了解两个基础知识&#xff1a; &#xff08;1&#xff0…...

php版本升级,composer install / update 失败

composer install / update 出现以下类似问题&#xff1a; Problem 1 - bacon/bacon-qr-code 2.0.0 requires php ^7.1 -> your php version (8.0.3) does not satisfy that requirement. - simplesoftwareio/simple-qrcode 3.0.0 requires bacon/bacon-qr-code 2.0…...

PHP生成条形码(barcode)

require_once(./barcode/class/BCGColor.php); require_once(./barcode/class/BCGDrawing.php); require_once(./barcode/class/BCGcode128.barcode.php); $colorFront new \BCGColor(0, 0, 0); $colorBack new \BCGColor(255, 255, 255);...

用ROS来做无人测试平台系列之国外的一些RACECAR

MIT RACECAR&#xff0c;最早开始做racecar的&#xff0c;主要基于双目摄像头激光雷达: http://fast.scripts.mit.edu/racecar/hardware/ UPENN F1 TENTH&#xff0c;同MIT racecar特别像&#xff0c;不过很多东西需自己组装&#xff0c;电调模块需自己焊接: http://f1tenth.o…...

CVPR2022论文速递(2022.3.30)!共48篇

整理&#xff1a;AI算法与图像处理CVPR2022论文和代码整理&#xff1a;https://github.com/DWCTOD/CVPR2022-Papers-with-Code-Demo欢迎关注&#xff1a;StyleT2I: Toward Compositional and High-Fidelity Text-to-Image Synthesis论文/Paper: http://arxiv.org/pdf/2203.1579…...

jsBarcode生成条形码

1.pc端/移动端生成条形码 html <svg id"svgcode"></svg><canvas id"canvascode"></canvas><img id"imgcode" />js <script type"text/javascript" src"https://code.jquery.com/jquery-2.1.3…...

权限管理,通常使用 RBAC (Role-Based Access Control) 模式

2019独角兽企业重金招聘Python工程师标准>>> 权限管理&#xff0c;通常使用 RBAC (Role-Based Access Control) 模式。 R : role 代表角色&#xff0c;主要给各个权限分组&#xff0c;例如管理员&#xff0c;编辑&#xff0c;审核员等等。 具体思路&#xff1a; 给程…...

Linux Shell编程 | 何不通过一段详细注释的Shell脚本,掌握linux命令?(一键部署jdk)

人生苦短&#xff0c;务必性感。 前言 相信很多人都不想从头开始看一个个枯燥的linux命令&#xff0c;学了那么多命令&#xff0c;实际经常使用的命令并不多&#xff0c;何不通过一段实战的shell脚本&#xff0c;学习起来更有意思&#xff0c;可以从中直接感受下哪些命令才会高…...

Echarts的二次封装思考心得。封装成果:折线柱状混合图、立体柱状折线混合图、markline标记线

先说一下这次对ECharts二次封装总结的一些东西吧&#xff0c;感觉这是重点&#xff01; 二次封装及使用的矛盾痛点&#xff1a; 一般封装只会暴露出一些常用的属性&#xff0c;最常见的如图表的颜色、数据&#xff1b;封装人员也不会考虑把所有情况都封装起来&#xff0c;因为…...

【SSH框架/国际物流商综平台】-03 部门、用户、角色、模块 CURD BRAC认证 细粒度权限控制 BaseAction Page struts.xml *.hbm.xml

一.回顾 1.项目首页面执行过程分析 2.顶部菜单点击后,为什么左侧&#xff0c;中间区域会改变 3.为什么左侧菜单点击后&#xff0c;显示结果在中间区域 4.DAO分析 5.Page分页组件 6.编写及酉己置Service, Action 7完成DeptAction类的CRUD操作 8.BaseAction 的类 二.DeptAction…...

Spire.Barcode for Java组件(一)生成条形码、二维码(QR code,Code 128,EAN 13等)

Spire.Barcode for Java是一款专业的条形码组件&#xff0c;用于在Java应用程序&#xff08;J2SE和J2EE&#xff09;中生成和识别一维和二维条码&#xff0c;支持多达38种条码格式&#xff08;见下表&#xff09;&#xff0c;包括常见的QR code&#xff0c;PDF 417&#xff0c;…...

领先分析机构的市场研究发现,96% 的受访者会推荐 SAP Analytics Cloud

SAP (NYSE: SAP) 日前宣布&#xff0c;SAP Analytics Cloud&#xff08;分析云&#xff09;解决方案在行业分析机构 BARC 开展的 The BI Survey 18 调查中名列前茅。该调查面向全球各大 BI 供应商&#xff0c;针对业务价值、客户满意度、云商业智能和创新等领域进行了评比。根据…...

最新数据分析与商业智能趋势前瞻

2019年&#xff0c;商业智能&#xff08;BI&#xff09;解决方案的核心竞争力&#xff0c;仍将取决于其是否具备使手动工作量降到最低的高级分析功能。《商业应用研究中心&#xff08;BARC&#xff09;2018商业智能调查》显示&#xff0c;全球BI服务市场预计将发生重大的技术变…...

基于vue2.x实现loading bar(加载进度条)组件

在线演示地址Loading Bar 在这之前&#xff0c;我更新了有关一个单选框与复选框的组件实现&#xff0c;有兴趣的小伙伴也可以了解一下&#xff0c;今天我们来介绍一下loading bar 组件的实现原理。 实现思路 整个组件ui部分有两部分组成&#xff0c;分别为顶部条形记载进度条…...

第八篇:JAVA生成二维码(zxing)

上一篇博客中介绍了条码的使用示例&#xff0c;这一篇继续介绍如何使用Java生成二维码。 package com.hq.util;import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.io.OutputStream;import jav…...

单细胞10x的数据读取不进去怎么办?

面对越来越多的单细胞数据被上传至NCBI上&#xff0c;单细胞数据挖掘分析也逐渐走入大家的眼中。如何寻找一个合适的单细胞数据用于后续非常重要&#xff0c;这时候大家可能会经常遇到这么一个问题&#xff0c;一个标准的10x的数据&#xff0c;为什么我怎么也读取不进去呢&…...

Linux用户环境变量

Linux用户环境变量 环境变量就是系统或软件设置的一些参数&#xff0c;用户环境变量就是用户登录系统后&#xff0c;都有自已专用的运行环境。在Windows系统中用户环境变量保存在用户家目录&#xff0c;Linux也是同样的。本文主要是讲解Linux常用的环境变量和环境变量的设置。一…...

linux脚本 source,Shell 的source命令

http://www.xxlinux.com/linux/article/development/shell/2006-09-22/4499.htmlhttp://www.diybl.com/course/6_system/linux/Linuxjs/20071027/80454.htmlhttp://linux.chinaunix.net/techdoc/system/2008/09/04/1030374.shtmlexec和source都属于bash内部命令(builtins comma…...

SCTransform:单细胞样本的标准化

每次我在国内直接用这种方法下载数据集都没有成功&#xff0c;如上&#xff0c;下载安装包&#xff0c;本地安装&#xff1a; install.packages(“H:/singlecell/Seurat/stxBrain.SeuratData_0.1.1.tar.gz”, repos NULL, type “source”) brain <- LoadData(“stxBrain…...

linux shell的.bashrc和.bash_profile

背景&#xff1a; 我再测试一个运行的后台脚本不退出的情况下给环境变量文件.bashrc或.bash_profile增加一个环境变量例如$caogecaoge_test,发现在后台运行的脚本执行source ~ /.barc和source ~/.bash_profile的效果不同&#xff0c;下边是我的测试结果&#xff1a; 关于shell读…...

Go 开发环境安装之Goland和vscode

一、前言 Go语言或将成为新的主力开发语言&#xff0c;Go是google开发的一种静态强类型、编译型、并发型&#xff0c;并具有垃圾回收功能的编程语言&#xff0c;所以我们有必要学习并掌握它。第一件事情&#xff0c;就是把环境搭建起来&#xff0c;大家可以跟着步骤一起将Go语…...