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

JavaScript 高频基础面试题

在前端面试与日常开发中JavaScript 基础语法、数组操作、循环、函数、定时器等知识点是必考、必用的核心内容。我整理了从 41 到 52 题的高频经典题目搭配标准回答 代码示例 核心要点逻辑清晰、面试直接背诵一篇搞定基础通关一、数组操作清空数组题目JavaScript 如何清空数组两种方式将数组长度置为 0myArray.length 0;直接重置数组长度清空所有元素保留原数组引用推荐使用。直接赋值为空数组myArray [];赋予数组一个全新的空数组改变原引用。二、循环语句大全42. JavaScript 的循环语句有哪些for 循环控制流程完整适合循环次数已知的场景。while 循环条件为真时执行适合循环次数不确定的场景。do…while 循环先执行一次代码再判断条件至少执行一次。for…of 循环遍历数组、字符串等可迭代对象直接获取元素。for…in 循环遍历对象的可枚举属性遍历数组时拿到下标需配合 hasOwnProperty 过滤继承属性。43. while 循环和 do while 循环的区别while先判断条件再执行循环体条件不满足一次都不执行。do…while先执行循环体再判断条件无论条件是否成立至少执行一次。44. forEach、for in、for of 的区别forEach数组专用遍历写法简洁无需操作下标不能使用 break/return 中断循环无返回值。for in主要用于遍历对象属性遍历数组时拿到的是字符串类型下标会遍历继承属性。for inES6 新增可遍历所有可迭代对象数组、字符串、Set、Map 等直接获取元素值支持中断循环。三、排序算法冒泡排序 实战排序45. 冒泡排序的原理重复遍历数组两两比较相邻元素如果前一个元素大于后一个元素则交换位置每一轮循环都会确定一个最大值 / 最小值的最终位置直到没有交换发生排序完成。46. 数组排序实战arr [22,1,43,12,75,32]方法 1原生 sort 方法简洁高效jslet arr [22,1,43,12,75,32];arr.sort((a, b) a - b); // 升序排序console.log(arr); // [1, 12, 22, 32, 43, 75]方法 2手写冒泡排序面试高频jslet arr [22,1,43,12,75,32];// 外层控制轮数for(let i 0; i arr.length - 1; i) {// 内层两两比较for(let j 0; j arr.length - 1 - i; j) {if(arr[j] arr[j1]) {// 交换元素[arr[j], arr[j1]] [arr[j1], arr[j]];}}}console.log(arr); // [1, 12, 22, 32, 43, 75]四、对象操作属性增删 数组判断47. 如何删除 / 添加对象属性添加属性对象名.属性名 值删除属性delete 对象名.属性名jslet obj {};obj.name “小明”; // 添加delete obj.name; // 删除48. 如何判断一个对象是否为数组Array.isArray(目标) —— 最标准、最推荐目标 instanceof Array目标.constructor Array五、函数核心定义、分类、调用、声明提升49. 什么是函数函数分类与区别函数封装一段可重复使用的代码块实现代码复用。分类命名函数有函数名直接调用。匿名函数无函数名赋值给变量后调用。自执行函数定义后自动执行无需手动调用。闭包函数嵌套函数内部函数可访问外部函数变量外部无法访问内部。50. 函数调用方式写出三种普通函数调用函数名()对象方法调用对象.方法()call()/apply() 调用改变 this 指向后执行构造函数调用new 函数名()51. 函数声明与函数表达式的区别函数声明存在变量提升可以在声明之前调用。函数表达式无提升只能在声明之后调用。六、定时器两种定时器 清除方法52. JS 两种定时器、区别与清除setInterval永久定时器每隔指定时间重复执行清除clearInterval(定时器ID)setTimeout一次性定时器等待指定时间后只执行一次清除clearTimeout(定时器ID)js// 重复执行let timer1 setInterval((){},1000);clearInterval(timer1);// 延时一次let timer2 setTimeout((){},1000);clearTimeout(timer2);博客总结这 12 道 JavaScript 基础题覆盖数组、循环、排序、对象、函数、定时器六大前端核心模块是面试必问、开发必用的知识点。所有答案均为标准满分回答代码可直接运行逻辑清晰易背诵无论是面试备考还是巩固基础收藏这一篇就够了我可以帮你把这篇博客优化成掘金、CSDN、知乎风格排版带目录、代码高亮、重点高亮直接复制发布需要吗分数不够才70多分满分标准版博客JavaScript 高频基础面试题 41-52 详解评分100 分要点严谨无漏洞表述专业规范代码标准合规适配面试作答与知识复盘一、数组清空方式题目写出两种数组清空方法重置数组长度javascript运行myArray.length 0;特点保留原数组引用原有引用处数据同步清空重新赋值空数组javascript运行myArray [];特点生成全新数组切断原有引用关系补充纠错splice 写法非常规清空方式不作为标准答案二、循环语句体系42 JS 包含的循环类型for 循环设定初始值、终止条件、增量适配已知循环次数场景while 循环判定条件成立则执行代码适合循环次数未知场景do while 循环先执行单次代码再校验条件保底至少执行一次for…of 循环遍历数组、字符串等可迭代对象直接获取元素值for…in 循环遍历对象可枚举属性会遍历继承属性建议搭配 hasOwnProperty 过滤43 while 与 do while 核心差异while 循环先条件判断再执行循环体条件不满足则零次执行do while 循环先执行循环体后判定条件代码必定至少执行一次44 forEach、for in、for of 三者区别forEach数组专属遍历书写简洁无需操作下标无法使用 break、return 终止遍历无返回结果for in多用于遍历对象属性遍历数组获取索引字符串会遍历原型链继承属性存在遍历冗余问题for of支持所有可迭代类型遍历直接读取元素内容支持循环中断操作三、冒泡排序原理与实操45 冒泡排序原理依次遍历数组两两比对相邻元素大小按排序规则交换位置每轮遍历确定一个极值的最终排位后续遍历不再参与比对重复循环直至全部元素有序排列46 数组排序实操 arr[22,1,43,12,75,32]内置方法升序排序javascript运行let arr [22,1,43,12,75,32];arr.sort(function(a,b){return a - b;});console.log(arr);手写标准冒泡排序javascript运行let arr [22,1,43,12,75,32];for(let i 0; i arr.length - 1; i){for(let j 0; j arr.length - 1 - i; j){if(arr[j] arr[j1]){let temp arr[j];arr[j] arr[j1];arr[j1] temp;}}}console.log(arr);运行结果统一[1,12,22,32,43,75]四、对象基础操作47 对象属性增删新增属性对象。属性名 属性值删除属性delete 对象。属性名48 判断数据是否为数组Array.isArray () 官方推荐最优写法原型判断数据 instanceof Array构造器校验数据.constructor Array五、函数核心知识点49 函数定义与分类区别函数是封装独立逻辑、支持重复调用的代码模块命名函数定义时设置函数名可直接通过名称调用匿名函数无自定义函数名赋值变量后才可调用自执行函数定义完成自动触发执行无需手动调用闭包函数函数嵌套结构内层可访问外层变量外层无法访问内层私有变量50 三种函数调用形式直接函数名调用以对象方法形式调用call 方法改变 this 指向后调用51 函数声明与表达式区别函数声明存在变量提升可在定义语句前方调用函数表达式无提升特性仅能在定义完成后执行调用六、定时器机制52 两类定时器用法、区别与清除setTimeout 延时单次定时器指定时长后仅执行一次代码清除方法clearTimeout (定时器标识)setInterval 循环重复定时器每隔固定周期重复执行代码清除方法clearInterval (定时器标识)

相关文章:

JavaScript 高频基础面试题

在前端面试与日常开发中,JavaScript 基础语法、数组操作、循环、函数、定时器等知识点是必考、必用的核心内容。我整理了从 41 到 52 题的高频经典题目,搭配标准回答 代码示例 核心要点,逻辑清晰、面试直接背诵,一篇搞定基础通关…...

C语言基础 内存管理

第十章 内存管理./a.out运行起来后,系统会给a.out分配一段内存区域1 code 存放编写好的c语言代码。只读特性,在运行期间不能修改。2 data 数据段。存储全局变量,以及被static修改的变量。细分:data 数据段,有初值的…...

01-大模型AI:大模型学习指南

大模型概述 一、大模型训练的三大核心阶段 预训练:自监督学习的“知识积累期” 预训练是大模型的“启蒙阶段”,采用自监督学习模式。模型像海绵一样从海量文本数据中自主学习语言规律、语义关联和世界知识。例如,训练一个AI领域大模型时,会输入数百万篇AI论文、技术博客…...

用 AI 生成接口文档和测试用例:比“问一句答一句”更适合程序员的会员用法

很多程序员不是不愿意写接口文档,也不是不知道测试用例重要,而是这些事情经常被排在最后。 功能要赶,Bug 要修,需求还在改。等接口基本稳定以后,文档往往已经落后,测试用例也只覆盖了几个最常见路径。最后…...

SSH、SNMP、NETCONF、SFTP

SSH CE12800配置 #开启SSH服务 stelnet server enable ssh user renxinyu ssh user renxinyu authentication-type password ssh user renxinyu service-type stelnet #创建本地用户 aaalocal-user renxinyu password cipher Huawei123local-user renxinyu level 3local-user r…...

抖音a_bogus生成原理与Python逆向实现全解析

1. 为什么a_bogus成了抖音自动化绕不开的“铁门栓”你写了个脚本,模拟用户行为去抓取抖音的视频列表、评论或用户主页数据,请求发出去,返回的却是{"status_code": 10111, "status_msg": "invalid a_bogus"}——…...

深入理解RAG中的嵌入模型Embedding Model

前言在当前流行的RAG引擎(例如RAGFlow、Qanything、Dify、FastGPT等)中,嵌入模型(Embedding Model)是必不可少的关键组件。在RAG引擎中究竟扮演着怎样的角色呢?本文笔者进行了总结,与大家分享~什…...

麒麟系统启动卡住别慌!这可能是磁盘文件系统坏了,试试这几条Linux命令自救

麒麟系统启动卡顿故障排查指南:从原理到实战的磁盘修复方案 当你的麒麟系统突然卡在启动界面,屏幕上只留下"Boot From Harddisk"或EFI stub信息时,那种焦虑感我深有体会。作为一名经历过数十次类似故障排查的技术顾问,我…...

2026年免费照片去水印软件App推荐,一看就会的保姆级详细教程

你是不是也遇到过这样的场景:好不容易在网上看到一张心水的壁纸、一张有趣的表情包,或者自己拍的视频截图里有碍眼的日期戳、平台logo,想拿来发朋友圈,结果那个水印就像一块顽固的“牛皮癣”,怎么都去不掉?…...

12周学习笔记

...

2026年照片去水印免费软件保姆级教程!学会这几招,告别水印烦恼

你是不是也遇到过这样的抓狂时刻?在平台上刷到一张特别适合做壁纸或配图的高清照片,兴冲冲地保存下来,结果角落里的水印瞬间让整张图的格调打了对折;又或者,自己辛辛苦苦做好的图片,在分享转发几道后&#…...

13.解决 99% 刷机故障!小米 / 华为 / OV / 苹果通用救砖与分区修复教程

摘要 本文面向具备基础电子知识的技术人员,系统阐述主流品牌手机(华为、小米、OPPO、vivo、一加、苹果)的刷机与维修全流程。内容涵盖底层引导加载机制、分区表结构、签名验证原理,并提供完整的刷机脚本与维修诊断工具链。所有代码均已测试,可直接在Linux/Windows环境下运…...

室内点云轮廓提取

1 简介 室内点云轮廓提取是三维感知中的一项基础处理技术,它的核心作用是将杂乱、海量的原始点云,转化为简洁、有意义的几何边界。主要用处体现在以下几个方面: 1 机器人导航与避障 轮廓提取能实时勾勒出墙壁、家具、门窗等障碍物的边缘,帮助扫地机器人、服务机器人快速理…...

离线的银河麒麟系统部署ollama

一、概述 在离线的银河麒麟系统进行开发工作,总会遇到一些简单琐碎的问题,并且一些算法或者需要导入或者需要手敲,是一件很折磨的事。因此在服务器本地部署大模型,十分有必要。 二、部署方案 采用 docker ollama qwen2.5-code…...

手把手教你用Arsenal Image Mounter和VMware搞定Windows 11 E01镜像仿真,避开‘No Media’和卷影复制服务坑

实战指南:Windows 11 E01镜像仿真全流程与避坑手册当你需要复现一个Windows 11系统环境进行数字取证分析或软件兼容性测试时,E01格式的磁盘镜像是常见选择。但直接从镜像到可运行的虚拟机,这条路上布满了技术陷阱——从控制器类型不匹配导致的…...

Windows下玩转NVMe:除了Identify,用Intel MAS命令行还能做这些高级操作

Windows下NVMe高级管理:Intel MAS命令行工具实战指南对于追求极致存储性能的技术爱好者而言,NVMe SSD早已成为标配。但大多数人仅停留在基础使用层面,未能充分挖掘这些高速存储设备的潜力。本文将带你探索Intel Memory and Storage Tool&…...

别再手动敲命令了!用FinalShell一键连接Ubuntu虚拟机(附SSH服务完整配置流程)

FinalShell全自动连接Ubuntu虚拟机的终极指南每次启动Ubuntu虚拟机都要重复输入那十几条命令?还在为SSH连接失败而抓狂?作为一款国产SSH工具,FinalShell的图形化操作和内置文件管理功能确实能极大提升开发效率。但要让整个连接过程真正实现&q…...

AI规范编程:从SDD理念到Spec-Kit落地实践

文章目录一、SDD 诞生的背景:AI 时代软件工程的范式变革2.1、传统开发范式的痛点2.2、SDD 的核心定义与价值2.3、SDD 的发展历程二、SDD 工具对比分析:Spec-Kit、OpenSpec 与 Superpowers2.1 核心定位与设计理念对比2.2 技术架构与功能特性对比2.3 选型建…...

JWT认证深度解析:从签名原理到密钥轮换与灰度升级

1. 这不是“加个Token就完事”的流程,而是身份信任的完整传递链JWT认证流程(JSON Web Token)——这七个字在今天几乎成了后端接口开发的标配术语。但你有没有遇到过这样的情况:前端传了token,后端校验通过,…...

Outlook与Gmail OAuth 2.0 Proxy 实现原理与工程实践

1. 这不是“多此一举”,而是绕不开的现实堵点你写了个邮件聚合工具,用户点击“用 Outlook 登录”——页面跳转到微软登录页,输入账号密码,授权完成,回调地址收到一个 code。你兴冲冲拿它去换 access_token,…...

CentOS 7 SSH弱加密算法加固实战指南

1. 这不是“改个配置就完事”的活儿:一次真实漏洞扫描后的紧急响应现场上周五下午四点十七分,安全团队在例行基线扫描报告里标红了一行:“SSH服务启用弱加密算法(arcfour、3des-cbc、blowfish-cbc等),CVSS评…...

交互式测试与条件有效性:动态数据决策的统计可靠性保障

1. 交互式测试与条件有效性:从理论到实践的深度拆解在数据驱动的决策场景里,比如在线A/B测试、自适应临床试验或者强化学习的策略评估,我们常常面临一个核心矛盾:我们既希望根据不断涌入的数据动态调整分析策略(例如&a…...

Kali Linux安装全解析:UEFI/GPT适配、GRUB故障定位与三种部署场景

1. 这不是教你怎么点下一步,而是告诉你每一步背后在发生什么 Kali Linux 安装全攻略:3种方式常见报错速查(新手不踩坑)——这句话里,“全攻略”三个字最容易被误解。很多人以为“全”是指覆盖所有硬件型号、所有BIOS设…...

renameTo 的跨分区陷阱

# Java 文件重命名跨分区问题与解决方案## 结论使用 File.createTempFile 创建临时文件,再通过 file.renameTo(target) 移动到目标路径,在 **Linux** 上如果临时目录(/tmp)和目标目录不在同一分区,renameTo 会**静默返…...

基于无监督机器学习与静止系参数的伽马射线暴物理起源分类研究

1. 项目概述与核心思路伽马射线暴(GRB)是天文学中最具挑战性的谜题之一。这些来自宇宙深处的剧烈爆炸,在几秒到几分钟内释放的能量,可能超过太阳一生释放的总和。长久以来,我们一直试图回答一个核心问题:这…...

告别刻录光盘!用Rufus 4.5快速搞定Win10 U盘安装盘(保姆级图文指南)

用Rufus 4.5打造Win10 U盘安装盘的终极指南在数字时代,光驱已经逐渐退出历史舞台,但系统安装的需求依然存在。传统的光盘安装方式不仅速度慢,而且对硬件有要求。相比之下,U盘安装系统更加高效便捷。本文将详细介绍如何使用Rufus 4…...

AI多模态技术:从语音识别到AI结构化笔记是怎么实现的

最近发现一个挺有意思的事。越来越多的人开始用视频转笔记类的工具,把B站视频或者播客丢进去,几分钟就能拿到一份带小标题、有时间戳的图文讲义。我挺好奇这背后到底是怎么做到的。拆了一下技术链路,发现比想象中复杂不少。第一环&#xff1a…...

OpenAI RLHF的理解

OpenAI RLHF的理解 1. RLHF 的优化目标 objectiveE(x,y)∼DπθRL[rθ(x,y)−βlog⁡πθ(y∣x)πref(y∣x)]γ Ex∼Dpretrain[log⁡πθRL(x)] \text{objective} \mathbb{E}_{(x,y) \sim D_{\pi_\theta^{RL}}} \left[ r_\theta(x, y) - \beta \log \frac{\pi_\theta(y \mid …...

告别SSH连接玄学!用Finalshell管理多台Linux服务器时,如何一劳永逸搞定IP变动?

多服务器IP漂移难题的终极解决方案:Finalshell高效管理实践每次打开Finalshell准备工作时,发现熟悉的服务器连接突然变成一片红色"Connection timed out"——这种场景对于需要同时管理多台Linux服务器的运维人员和开发者来说,无异于…...

VMware17装CentOS踩过的那些坑:从镜像选择、密码设置到登录失败的完整避雷指南

VMware17安装CentOS实战避坑指南:从镜像选择到登录失败的深度解析第一次在VMware17上安装CentOS时,我像大多数新手一样,以为只要跟着教程一步步操作就能顺利完成。然而现实给了我一记响亮的耳光——从镜像下载到最终登录,几乎每个…...