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

类型转换等 面试真题

题目1

请问哪个结果为NaN
A. 123+null
B. 123+‘1’
C. 123/0
D. 123+undefined

在这四个表达式中,只有D. 123 + undefined 的结果是 NaN,原因如下:

A. 123 + null

  • 结果是:123
  • 原因null 在数值运算中会被自动转换为 0,所以 123 + null 相当于 123 + 0,结果是 123

B. 123 + '1'

  • 结果是:'1231'
  • 原因123 是数字,而 '1' 是字符串,JavaScript 遇到数字和字符串进行加法运算时,会将数字转换为字符串,然后进行字符串拼接。因此结果是 '1231'(字符串)。

C. 123 / 0

  • 结果是:Infinity
  • 原因:在 JavaScript 中,数字除以 0 会得到 Infinity。这不是 NaN,而是 JavaScript 特殊的无穷大值。

D. 123 + undefined

  • 结果是:NaN
  • 原因undefined 在数值运算中无法被自动转换为有效的数值,因此结果是 NaN(Not a Number)。

总结:

  • D. 123 + undefined 结果是 NaN

题目2

[1,3,4,10,8,78,20].sort()的结果

在这里插入图片描述

题目3

给你一个字符串,请你找出其中不含有重复字符的最长子串长度。给出js代码实现

function lengthOfLongestSubstring(s) {let charIndexMap = {};let start = 0;let maxLength = 0;for (let i = 0; i < s.length; i++) {let char = s[i];if (charIndexMap[char] !== undefined && charIndexMap[char] >= start) {start = charIndexMap[char] + 1;}charIndexMap[char] = i;maxLength = Math.max(maxLength, i - start + 1);}return maxLength;
}// 测试代码
let testString = "abcabcbb";
console.log(lengthOfLongestSubstring(testString)); // 输出应该是 3

这个函数通过维护一个滑动窗口(start 到 i),并使用一个对象 charIndexMap 来记录字符最后出现的位置。如果遇到重复字符,就移动窗口的起始位置到重复字符上一次出现位置的下一个位置。每次迭代更新最长子串的长度 maxLength。对于给定的测试字符串 “abcabcbb”,最长不含重复字符的子串长度是 3(例如 “abc”)。

题目4

Es5中的类和s6中的class有什么区别?
ES5中的类和ES6中的class关键字在实现面向对象编程方面存在一些关键的区别:

  1. 语法糖

    • ES6的class关键字提供了一种更简洁、更清晰的语法来定义类和继承,它被看作是ES5中构造函数和原型链操作的语法糖。
    • ES5中使用构造函数和原型链来模拟类的行为,而ES6的class则直接提供了类的定义方式。
  2. 构造函数和原型链

    • 在ES5中,类是通过构造函数和原型链来实现的。构造函数用于创建对象实例,而原型链用于定义共享的方法和属性。
    • ES6的class则允许直接在类体中定义方法和属性,而不需要显式地操作原型链。
  3. 继承

    • ES5中实现继承需要手动设置原型链,或者使用一些辅助函数如Object.createcall方法。
    • ES6引入了extends关键字来简化继承的实现,子类可以使用super关键字来调用父类的构造函数或方法。
  4. 静态方法和属性

    • ES6的class允许使用static关键字定义静态方法和属性,这些方法和属性属于类本身,而不是类的实例。
    • 在ES5中,静态方法和属性需要手动添加到构造函数上。
  5. new.target

    • ES6引入了new.target属性,它在构造函数中使用,用于确定函数是否是通过new关键字调用的。
    • ES5中没有直接的方式来检测函数是否是通过new调用的。
  6. 不存在变量提升

    • ES6的class声明不存在变量提升,这意味着类的声明必须在使用之前完成。
    • ES5中的函数声明和变量声明存在提升现象。
  7. 简洁性和可读性

    • ES6的class语法更加简洁和直观,使得代码更易于理解和维护。
    • ES5的实现方式较为复杂,需要对原型链和构造函数有较深的理解。

综上所述,ES6的class关键字在语法上为JavaScript的面向对象编程提供了更为简洁和直观的实现方式,而ES5则需要通过构造函数和原型链来实现类似的功能。尽管ES6的class在功能上与ES5的实现方式等效,但其引入的语法糖使得代码更加符合传统面向对象语言的风格。

题目5

给你一个整型数组numbers在数字中找出由三个数组成的最大乘积并输出这个乘积。给出js代码实现
在 JavaScript 中,要找出一个整型数组中由三个数字组成的最大乘积,可以通过以下步骤实现:

  1. 首先对数组进行排序。
  2. 最大的乘积要么是最大的三个数的乘积,要么是两个最小的数(可能为负数)和最大的数的乘积(如果数组中包含负数)。

以下是实现这一功能的 JavaScript 函数:

function maxProductOfThree(numbers) {// 对数组进行排序numbers.sort(function(a, b) { return a - b; });// 最大乘积可能是最大的三个数的乘积,或者是两个最小数和最大数的乘积return Math.max(numbers[0] * numbers[1] * numbers[numbers.length - 1], numbers[numbers.length - 1] * numbers[numbers.length - 2] * numbers[numbers.length - 3]);
}// 示例使用
let numbers = [1, 10, 2, 6, 3, -1, -2];
console.log(maxProductOfThree(numbers)); // 输出应该是 180

在这个例子中,数组 [1, 10, 2, 6, 3, -1, -2] 的最大乘积由三个最大数 2 * 6 * 10 或者两个最小数 -2 * -1 * 10 组成,结果为 180

相关文章:

类型转换等 面试真题

题目1 请问哪个结果为NaN A. 123null B. 123‘1’ C. 123/0 D. 123undefined 在这四个表达式中&#xff0c;只有D. 123 undefined 的结果是 NaN&#xff0c;原因如下&#xff1a; A. 123 null 结果是&#xff1a;123原因&#xff1a;null 在数值运算中会被自动转换为 0&a…...

MySQL下载安装

MySQL下载安装 MySQL :: MySQL Community Downloads MySQL :: Download MySQL Installer 安装步骤1 一路向前即可。 我只安装Server&#xff0c;不清楚的建议选择Full ​ 安装步骤2 如果是正式运行的服务器&#xff0c;可以选择Server Computer...

golang实现正向代理http_proxy和https_proxy

package mainimport ("bytes""fmt""io""log""net""net/url""strings" )func main() {// tcp 连接,监听 8080 端口l, err := net.Listen("tcp", ":8080")if err != nil {log.Panic…...

数字IC设计\FPGA 职位经典笔试面试--整理

注&#xff1a; 资料都是基于网上一些博客分享和自己学习整理而成的 1&#xff1a;什么是同步逻辑和异步逻辑&#xff1f; 同步逻辑是时钟之间有固定的因果关系。异步逻辑是各时钟之间没有固定的因果关系。 同步时序 逻辑电路的特点&#xff1a;各触发器的时钟端全部连接在一…...

Golang协程泄漏定位和排查

Golang协程泄漏定位和排查 1 场景&#xff1a;无缓冲channel写阻塞2 排查和定位思路2.1 Golang pprof2.2 协程数监控2.3 操作系统内存泄漏 参考 1 场景&#xff1a;无缓冲channel写阻塞 package mainimport ("log""net/http"_ "net/http/pprof"…...

【我的 PWN 学习手札】Unlink Attack

目录 前言 一、Unlink介绍 二、保护和限制 &#xff08;1&#xff09;FD->bk P AND BK->fd P &#xff08;2&#xff09;chunksize(P) prev_size(next_chunk(P)) &#xff08;3&#xff09;largebin chunk 三、适用场景 四、利用与绕过 &#xff08;1&#…...

算法笔试-编程练习-好题-04

题目:堆盒子 礼盒大小不同&#xff0c;我们玩堆盒子的游戏&#xff0c;怎么堆盒子使得堆出的高度最高&#xff0c;每个礼盒的大小由长、宽、高表示&#xff0c;堆盒子的时候要求下面的盒子长、宽、高都必须大于上面的盒子&#xff0c;不包含等于。高度为堆出的礼盒的所有高度的…...

使用Rustup快速无缝升级Rust

rust update 升级 Rustup 是 Rust 官方的跨平台 Rust 安装工具。我们可以使用rustup升级rust版本 rustup updaterustup is not installed at ‘E:\cargo’ 意思是说’E:\argo’未安装rustup 将原来C:\Users\用户名\.cargo\bin下的文件复制到新的E:\cargo\bin $ rustup upda…...

pytorch qwen2-vl自定义数据全量微调

参考:https://github.com/zhangfaen/finetune-Qwen2-VL/tree/main 测试情况: 2B显存训练也很高,4090卡训练的 下载代码: git clone https://github.com/zhangfaen/finetune-Qwen2-VLtransformers包: 安装特定包,对qwen2vl支持 pip install git+https://github.com/hugg…...

切换淘宝最新npm镜像源是

切换淘宝最新npm镜像源是一个相对简单的过程&#xff0c;但首先需要明确当前淘宝npm镜像源的状态和最新的镜像地址。由于网络环境和服务更新&#xff0c;镜像源的具体地址可能会发生变化&#xff0c;因此&#xff0c;我将基于当前可获取的信息&#xff0c;提供一个通用的切换步…...

全国历年高考真题2008-2024

目录 分享链接&#xff1a; ⬇️⬇️⬇️ 点击下载...

【vue-media-upload】一个好用的上传图片的组件,注意事项

一、问题 media 的saved 数组中的图片使用的是location 相对路径&#xff0c;但是我的业务需要直接根据图片链接展示图片&#xff0c;而且用的也不是location 相关源代码 <div v-for"(image, index) in savedMedia" :key"index" class"mu-image-…...

linux第一课(操作系统核心)

一.关于linux (1)linux是一款开源的操作系统(是多用户&#xff0c;多任务&#xff0c;多线程)。 (2)一般所说的linux指的是linux核心&#xff0c;即对计算机硬件资源负责调度管理&#xff0c;主要职责是进程管理&#xff0c;内存管理文件系统&#xff0c;设备驱动&#xff0c…...

【期末复习】软件项目管理

前言&#xff1a; 关于软件项目管理这一科目的重要期末考点&#xff0c;希望对你有帮助。 目录 质量管理可能遇到的问题 软件项目质量管理 软件项目风险管理 进度 题1 题2 题3 成本 题1 题2 题3 质量管理可能遇到的问题 (1)没有制定质量管理计划&#xff1a; (2)…...

C# List定义和常用方法

栏目总目录 List的定义 列表&#xff08;List&#xff09;是一种常用的集合类型&#xff0c;它属于System.Collections.Generic命名空间。列表是一个有序集合&#xff0c;可以包含重复的元素&#xff0c;并且可以根据索引访问元素。 List< T > List<T> 是一个泛…...

如何在实际应用中更好地利用字典功能提高开发效率?

在当今数字化浪潮汹涌澎湃、技术迭代日新月异的时代&#xff0c;企业和开发者们犹如在信息的海洋中航行&#xff0c;迫切需要高效便捷的开发工具来指引方向、加速前行。开发工具的优劣直接关系到项目的进度、质量以及最终的商业价值实现。在众多开发工具的功能模块中&#xff0…...

Windows 环境下 vscode 配置 C/C++ 环境

vscode Visual Studio Code&#xff08;简称 VSCode&#xff09;是一个由微软开发的免费、开源的代码编辑器。它支持多种编程语言&#xff0c;并提供了代码高亮、智能代码补全、代码重构、调试等功能&#xff0c;非常适合开发者使用。VSCode 通过安装扩展&#xff08;Extension…...

[通信原理]绪论2:信息量 × 信息熵

我们知道信息是一个抽象的概念&#xff0c;它既不是物质也不是能量。那么我们要如何对一个抽象的概念进行一个定量的研究呢&#xff1f; 信息量 1、信息的度量 通信的本质是传递信息&#xff0c;为了定量表征信息的度量&#xff0c;引入信息量的概念。消息中所含信息量与其不…...

TCP套接字【网络】

文章目录 代码 创建套接字&#xff1a;&#xff08;TCP/UDP) int socket(int domain, int type, int protocol);inet_aton&#xff0c;将字符串IP转换成整数IP int inet_aton(const char *cp, struct in_addr *inp);监听套接字&#xff1a;&#xff08;TCP&#xff0c;服务器…...

【devops】devops-git之github使用

本站以分享各种运维经验和运维所需要的技能为主 《python零基础入门》&#xff1a;python零基础入门学习 《python运维脚本》&#xff1a; python运维脚本实践 《shell》&#xff1a;shell学习 《terraform》持续更新中&#xff1a;terraform_Aws学习零基础入门到最佳实战 《k8…...

SystemVerilog进阶:深入探索随机化约束的高级应用

1. 从基础到进阶&#xff1a;SystemVerilog随机化约束的核心价值 在芯片验证领域&#xff0c;随机化验证已经成为提高验证效率的黄金标准。SystemVerilog的随机化约束机制&#xff0c;就像给验证工程师配备了一个智能数据生成器&#xff0c;可以自动产生符合设计规范的测试场景…...

mmsegmentation训练策略调优全攻略:从学习率预热到迭代次数计算

mmsegmentation训练策略调优实战&#xff1a;从参数配置到显存优化 在图像分割领域&#xff0c;mmsegmentation框架因其模块化设计和丰富的预训练模型而广受欢迎。但真正决定模型性能上限的&#xff0c;往往是那些容易被忽视的训练策略细节。本文将带您深入AdamW优化器的参数微…...

DBA_RECYCLEBIN purge指定日期前的表

SummaryHow to purge DBA_RECYCLBIN for objects older than x days/minutes? or do we have RECYCLEBIN RETENTION feature or truncate recyclebin ?--------------------------------------------------------------------------------------DBA_RECYCLEBIN has a column …...

超越单一工具:在快马平台探索多模型ai辅助开发的全新工作流

在开发过程中&#xff0c;AI辅助工具已经逐渐成为提升效率的利器。最近我在尝试使用InsCode(快马)平台时&#xff0c;发现它提供的多模型AI辅助开发能力&#xff0c;远比单一工具更加强大和灵活。下面分享一个我实践的综合示例项目&#xff0c;展示如何利用平台的多模型能力优化…...

Debugging torch.distributed.DistBackendError: NCCL Communicator Setup and ncclUniqueId Retrieval Iss

1. 理解NCCL通信错误的核心问题 当你看到torch.distributed.DistBackendError: [2] is setting up NCCL communicator and retrieving ncclUniqueId这个错误时&#xff0c;本质上是在说GPU之间的"对讲机"无法正常建立连接。想象一下你正在组织一场多房间的线上会议&…...

3秒获取全网歌词:163MusicLyrics让多平台歌词提取效率提升10倍

3秒获取全网歌词&#xff1a;163MusicLyrics让多平台歌词提取效率提升10倍 【免费下载链接】163MusicLyrics Windows 云音乐歌词获取【网易云、QQ音乐】 项目地址: https://gitcode.com/GitHub_Trending/16/163MusicLyrics 在数字音乐时代&#xff0c;歌词已成为音乐体验…...

如何快速掌握Windows文件夹色彩管理:Folcolor免费工具终极指南

如何快速掌握Windows文件夹色彩管理&#xff1a;Folcolor免费工具终极指南 【免费下载链接】Folcolor Windows explorer folder coloring utility 项目地址: https://gitcode.com/gh_mirrors/fo/Folcolor 你是否曾在密密麻麻的黄色文件夹中迷失方向&#xff1f;每天花费…...

终极指南:如何在.NET应用中快速集成VLC多媒体播放功能

终极指南&#xff1a;如何在.NET应用中快速集成VLC多媒体播放功能 【免费下载链接】Vlc.DotNet .NET control that hosts the audio/video capabilities of the VLC libraries 项目地址: https://gitcode.com/gh_mirrors/vl/Vlc.DotNet Vlc.DotNet是一个强大的.NET库&am…...

基于背景减除的PIV颗粒图像时均灰度分布分析方法

基于背景减除的PIV颗粒图像时均灰度分布分析方法 摘要 粒子图像测速(PIV)技术广泛应用于流体力学实验研究,其原始图像中包含大量示踪颗粒的灰度信息。除了用于速度场计算外,颗粒灰度分布还可用于分析颗粒浓度、粒径分布及混合特性。本文提出了一套完整的图像处理流程,包…...

OpenClaw 超级 AI 实战专栏【补充内容】AI开发实操:减少Token用量、提升模型效率的8个核心技巧(附代码)

目录 一、核心前提:理解Token消耗的关键场景 二、6种优化方案(附案例+代码) 方案1:精简Prompt(最易落地,立竿见影) 核心思路 应用案例 代码实现 方案2:上下文窗口裁剪(避免历史信息冗余) 核心思路 应用案例 代码实现 方案3:输入文本摘要压缩(批量处理场景…...