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

JavaScript高频八股

一、原型和原型链1、概念每个对象都有一个隐藏的属性__proto__原型指向它创建时的构造函数的prototype原型对象。当访问对象的一个属性或方法时如果对象本身没有就会去它的__proto__上找如果还没有就继续往上直到null原型链的终点。这个查找的链条就是原型链。2、核心概念prototype显式原型函数独有的属性。当你定义一个函数时它会自动获得一个prototype属性这个属性是一个对象用来存放所有由该函数构造出来的实例共享的属性和方法。__proto__隐式原型对象独有的属性。每个对象包括函数对象都有一个__proto__属性它指向创建这个对象的构造函数的prototype。constructor构造器每个prototype对象都有一个constructor属性指向它关联的构造函数。3、回答要点原型是 JS 实现继承的机制通过__proto__将对象串联起来。函数有prototype实例对象有__proto__实例的__proto__指向构造函数的prototype。原型链的终点是null。属性查找是向上追溯的这就是原型链的意义。实际开发中我们可以利用原型链来挂载共享方法节省内存也可以通过hasOwnProperty来区分自身和继承属性。同时要注意性能问题避免在原型链上查找太深。4、画原型链要点1引用类型都是对象每个对象都有原型对象。2对象都是由构造函数创建对象的__proto__属性指向其原型对象构造函数的prototype属性指向其创建的对象实例的原型对象所以对象的__proto__属性等于创建它的构造函数的prototype属性。3所有通过字面量表示法创建的普通对象的构造函数为Object4所有原型对象都是普通对象构造函数为Object5所有构造函数的构造函数是Function6Object.prototype没有原型对象所以Object.prototype._proto_null最后对原生构造函数Object和Function下手// 原生构造函数也是函数对象其构造函数为FunctionObject.__proto__ Function.prototype// 特例Function.__proto__ Function.prototype二、JS手撕1.数组扁平化概念把多层嵌套的数组数组套数组拍平成一层的数组例子// 原始数组嵌套了多层 const nested [1, [2, 3], [4, [5, 6]]]; // 扁平化后变成一层 const flat [1, 2, 3, 4, 5, 6];递归法其中arr[i]instanceofArray判断数组元素是不是数组concat是 JS 数组的方法用来把两个或多个数组合并成一个新数组function flatten(arr) { let result []; for (let i 0; i arr.length; i) { if (arr[i] instanceof Array) { // 是数组递归拍平然后合并 result result.concat(flatten(arr[i])); } else { // 不是数组直接添加 result.push(arr[i]); } } return result; }三、this指向四、foreach map区别

相关文章:

JavaScript高频八股

一、原型和原型链1、概念:每个对象都有一个隐藏的属性 __proto__(原型),指向它创建时的构造函数的 prototype(原型对象)。当访问对象的一个属性或方法时,如果对象本身没有,就会去它的…...

c.语言完美演绎6-22

/* 范例&#xff1a;6-22 */ #include<stdio.h>#include<conio.h>int main(){char a;printf("你要进入本系统吗?是请按y&#xff0c;否请按任意键>");scanf("%c",&a);while(ay){int swn ;printf("(1)--nn乘法\n(2)--计算总数\n(3…...

基于Copula函数的多风场出力相关性分析场景生成与聚类削减方法(MATLAB实现)

考虑多风场出力相关性的可再生能源场景生成/风电场景生成&#xff0c;并通过聚类算法场景削减成几个场景&#xff0c;每个场景都有确定的出现概率。 完美复现《考虑多风电场出力 Copula 相关关系的场景生成方法》 Copula 函数(连接函数)描述空间相邻风电场间的相关性&#xff0…...

微前端状态管理的真相:Module Federation + 跨应用通信实战

本周大前端要闻Compose Multiplatform v1.11.10-alpha01&#xff1a;进一步完善跨平台 UI 状态同步能力&#xff0c;ViewModel 共享机制改进KotlinConf’26 演讲阵容公布&#xff1a;多场 Session 聚焦 Kotlin 多平台架构与状态管理&#xff0c;值得关注Retrofit 3.0.0 正式发布…...

09_微服务划分与团队人数之阿里实践与行业案例

微服务划分与团队人数之阿里实践与行业案例 体系内容 拆分维度:业务能力维度、通用能力维度、非功能维度 组织原则:康威定律、领域自治、平台沉淀、核心/非核心差异化治理 Spring Cloud Alibaba 视角:Nacos、Sentinel、RocketMQ、Seata、Dubbo 在企业场景中的组合打法 行业…...

08_微服务划分与团队人数之监控治理与跨团队协作

微服务划分与团队人数之监控治理与跨团队协作 体系内容 可观测性三支柱:指标、日志、链路追踪 治理要素:SLO、Dashboard、告警分级、容量视图、契约审计 Spring Cloud Alibaba 关联:Nacos、Sentinel、Gateway、RocketMQ、Dubbo 与观测平台协同 跨团队机制:接口契约、消息契…...

07_微服务划分与团队人数之渐进式拆分与团队演进

微服务划分与团队人数之渐进式拆分与团队演进 体系内容 演进方法:单体优先、边界识别、服务化拆分、平台能力沉淀 组织演进:小团队、部落-小队、平台团队、架构治理机制 Spring Cloud Alibaba 路线:Nacos、Gateway、Sentinel、RocketMQ、Seata 逐步引入 决策重点:什么时候…...

房屋租赁管理系统开发教程:基于SSM框架实战全记录

房屋租赁管理系统 java项目ssm框架开发,全套视频教程Verio 房屋租赁系统“我的收藏”功能深度解析——从用户点击到数据落地的全流程设计一、业务定位在房屋租赁平台中&#xff0c;“收藏”是连接「浏览」与「决策」的关键节点。Verio 把收藏做成一个轻量级、可复用的“微服务”…...

分布式微电网能源交易算法matlab源代码, 代码按照高水平文章复现,保证正确 孤岛微电网之间...

分布式微电网能源交易算法matlab源代码&#xff0c; 代码按照高水平文章复现&#xff0c;保证正确 孤岛微电网之间的能源交易问题&#xff0c;提出了一种分布式算法。 这个问题由几个通过任意拓扑交换能量流的岛屿微网格组成。 提出了一种基于次梯度的开销最小化算法&#xff0…...

【2026年最新600套毕设项目分享】springboot智能民宿预定与游玩系统(14340)

有需要的同学&#xff0c;源代码和配套文档领取&#xff0c;加文章最下方的名片哦 一、项目演示 项目演示视频 二、资料介绍 完整源代码&#xff08;前后端源代码SQL脚本&#xff09;配套文档&#xff08;LWPPT开题报告/任务书&#xff09;远程调试控屏包运行一键启动项目&…...

【2026年最新600套毕设项目分享】springboot校园二手交易系统(14339)

有需要的同学&#xff0c;源代码和配套文档领取&#xff0c;加文章最下方的名片哦 一、项目演示 项目演示视频 二、资料介绍 完整源代码&#xff08;前后端源代码SQL脚本&#xff09;配套文档&#xff08;LWPPT开题报告/任务书&#xff09;远程调试控屏包运行一键启动项目&…...

【2026年最新600套毕设项目分享】springboot河南特色美食分享系统(14338)

有需要的同学&#xff0c;源代码和配套文档领取&#xff0c;加文章最下方的名片哦 一、项目演示 项目演示视频 二、资料介绍 完整源代码&#xff08;前后端源代码SQL脚本&#xff09;配套文档&#xff08;LWPPT开题报告/任务书&#xff09;远程调试控屏包运行一键启动项目&…...

【2026年最新600套毕设项目分享】基于Java的游泳馆管理系统(14337)

有需要的同学&#xff0c;源代码和配套文档领取&#xff0c;加文章最下方的名片哦 一、项目演示 项目演示视频 二、资料介绍 完整源代码&#xff08;前后端源代码SQL脚本&#xff09;配套文档&#xff08;LWPPT开题报告/任务书&#xff09;远程调试控屏包运行一键启动项目&…...

【2026年最新600套毕设项目分享】springboot仁和机构的体检预约系统(14336)

有需要的同学&#xff0c;源代码和配套文档领取&#xff0c;加文章最下方的名片哦 一、项目演示 项目演示视频 二、资料介绍 完整源代码&#xff08;前后端源代码SQL脚本&#xff09;配套文档&#xff08;LWPPT开题报告/任务书&#xff09;远程调试控屏包运行一键启动项目&…...

03_Neo4j知识体系之5.x与2026.x新特性和版本演进

03_Neo4j知识体系之5.x与2026.x新特性和版本演进 体系 版本演进层&#xff1a;Neo4j 5.x LTS、2025/2026 日历化版本、Cypher 5 与 Cypher 25、Autonomous Clustering、Ops Manager、Vector Indexes、AI 能力关联能力&#xff1a;与升级迁移路径、集群扩容、Fabric 联邦查询、差…...

02_Neo4j知识体系之Cypher核心语法与CRUD实战

02_Neo4j知识体系之Cypher查询语言深度解析 体系 查询语言层&#xff1a;Cypher核心语法、CRUD操作、高级查询、路径模式、聚合分析、条件过滤、Quantified Path Patterns&#xff08;QPP&#xff09;关联能力&#xff1a;与属性图模型、索引设计、执行计划分析、图应用建模和…...

在Ubuntu 22.04上搞定SRILM 1.7.3:从下载到`make test`成功的保姆级记录

在Ubuntu 22.04上搞定SRILM 1.7.3&#xff1a;从下载到make test成功的保姆级记录 如果你正在Ubuntu 22.04上折腾SRILM 1.7.3&#xff0c;大概率已经发现那些老掉牙的教程根本不管用。别担心&#xff0c;这篇实战记录会带你避开所有新系统环境下的坑——从依赖项安装到Makefile…...

字节跳动开源Coze后,个人开发者如何快速上手?保姆级教程来了

字节跳动开源Coze实战指南&#xff1a;从零构建AI智能体的完整路径 当字节跳动宣布将Coze平台全面开源时&#xff0c;整个开发者社区为之振奋。这个被称作"AI智能体全栈工厂"的平台&#xff0c;如今终于揭开了神秘面纱&#xff0c;让个人开发者能够深入探索其技术内核…...

IGBT驱动电路设计避坑指南:从选型到PCB布局的8个关键点

IGBT驱动电路设计避坑指南&#xff1a;从选型到PCB布局的8个关键点 在电力电子领域&#xff0c;IGBT驱动电路的设计质量直接决定了整个系统的可靠性和效率。我曾亲眼见过一个价值百万的变频器项目&#xff0c;因为驱动电阻选型不当导致批量烧毁&#xff0c;团队不得不连续加班三…...

[具身智能-229]:OpenCV 的 DNN (Deep Neural Networks) 模块,可以直接加载和运行,通过PyTorch AI框架训练好的模型,而不需要安装PyTorch AI框架

OpenCV 的 DNN (Deep Neural Networks) 模块确实是工业界和边缘计算领域非常推崇的推理引擎。它的核心定位不是“训练模型”&#xff0c;而是“让训练好的模型跑得更快、更轻、更通用”。它允许开发者在不依赖庞大的 TensorFlow 或 PyTorch 库的情况下&#xff0c;直接在生产环…...

SEO关键词长尾词优化工具源码解析:站长流量增长的秘密武器

一、长尾关键词优化的核心价值长尾关键词通常由3个以上词汇组成&#xff0c;例如“适合初学者的Python编程教程”或“2026年性价比最高的智能手表推荐”。这类关键词虽然单个搜索量较低&#xff0c;但整体覆盖了用户搜索意图的细分场景&#xff0c;具有以下优势&#xff1a;精准…...

数理化随机出题系统HTML源码,适配教育场景,支持自定义题库与难度分级

&#x1f6e0;️ 系统核心功能多学科覆盖&#xff1a;支持数学、物理、化学三个学科的题目随机生成难度分级配置&#xff1a;可自定义简单、中等、困难三个难度级别的题目占比题库自定义&#xff1a;支持手动添加不同学科、不同难度的题目内容一键生成试卷&#xff1a;点击即可…...

蓝桥杯19725最优分组

import java.util.Scanner; // 1:无需package // 2: 类名必须Main, 不可修改public class Main {public static void main(String[] args) {Scanner scanner new Scanner(System.in);int n scanner.nextInt();double p scanner.nextDouble();double minCost Double.MAX_VAL…...

蓝桥杯19723分布式队列

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner innew Scanner(System.in);int nin.nextInt();int l[]new int[n];//记录每行的长度while (in.hasNext()){String sin.next();if(s.equals("add")){int xin.nextInt();…...

PanSearch网盘影视资源搜索聚合工具源码解析:集成多引擎搜索技术,畅享跨平台资源检索

在数字化信息爆炸的时代&#xff0c;影视资源的获取方式日益多样化&#xff0c;但如何在海量资源中快速定位所需内容&#xff0c;成为用户面临的一大挑战。PanSearch网盘影视资源搜索聚合工具应运而生&#xff0c;它通过集成多引擎搜索技术&#xff0c;支持百度网盘、阿里云盘等…...

BeMusic 3.1.3音乐网站源码:打造个人专属音乐平台的完美选择

在当今数字音乐时代&#xff0c;拥有一个属于自己的音乐网站已成为许多音乐爱好者和开发者的梦想。BeMusic 3.1.3音乐网站源码正是实现这一梦想的理想工具。作为一个功能全面的音乐分享和流媒体平台&#xff0c;BeMusic允许用户在几分钟内创建专业级的音乐网站&#xff0c;无需…...

Cobalt Strike实战指南:从基础配置到高级渗透技巧

1. Cobalt Strike基础入门 第一次接触Cobalt Strike时&#xff0c;我被它强大的功能震撼到了。这款工具不仅能够模拟高级威胁攻击&#xff0c;还能进行红队协作操作&#xff0c;是渗透测试领域的瑞士军刀。记得刚开始搭建环境时&#xff0c;我在Kali和Windows双系统间反复切换&…...

用C++和Winsock从零搭建一个局域网聊天室(附完整代码)

用C和Winsock构建高效局域网聊天室的实战指南 在当今数字化协作环境中&#xff0c;即时通讯工具已成为团队沟通的标配。虽然市面上已有成熟的商业解决方案&#xff0c;但理解底层网络通信原理对于开发者而言至关重要。本文将带你从零开始&#xff0c;用C和Winsock API构建一个…...

TypeScript 快速实战系列:基础入门|TypeScript 核心语法 1 小时吃透(必备基础)

&#x1f525; 导读&#xff1a;上一篇我们搞定了TS环境搭建&#xff0c;也搞懂了为什么大模型开发必须学TS。今天这篇&#xff0c;不搞复杂理论&#xff0c;只讲大模型开发中「最常用、最核心」的TS语法——基础类型类型注解&#xff0c;1小时就能吃透&#xff0c;学完就能给大…...

Windows环境下SeaweedFS的快速部署与实战指南

1. 五分钟搞定SeaweedFS Windows安装 第一次听说SeaweedFS时&#xff0c;我也被这个"海草文件系统"的名字逗笑了。但别被名字迷惑&#xff0c;它可是个正经的分布式文件存储系统&#xff0c;特别适合处理海量小文件。我在Windows上部署过好几次&#xff0c;发现比想象…...