每天3小时学前端之JS-第05天-数组

SpringBoot+Vue3+DeepSeek健身管理系统:1小时快速搭建全栈项目实战 这次我们来看一个面向学生和初学者的实战项目:一个基于 SpringBoot + Vue3 + DeepSeek 的健身管理系统。这个项目的核心价值非常直接——它不是一个复杂的企业级框架,而是一个能让你在1小时内跑起来,并快速掌握前后端分离、增删改查(CRUD)核心流程的“期末救星”或课设模板。 项目集成了当下最主流的技术栈:SpringBoot 作为后端API服务,Vue3 构建现代化前端界面,并通过集成 DeepSeek 的 AI 聊天功能,为系统增添了智能交互的亮点。对于正在学习 Java 全栈开发、寻 阅读详情

数组

按次序排列的一组值。每个值的位置都有编号(从0开始),整个数组用方括号表示。

var arr = ['a', 'b', 'c'];

除了在定义时赋值,数组也可以先定义后赋值。

var arr = [];

arr[0] = 'a';
arr[1] = 'b';
arr[2] = 'c';

任何类型的数据,都可以放入数组。

var arr = [
  {a: 1},
  [1, 2, 3],
  function() {return true;}
];

arr[0] // Object {a: 1}
arr[1] // [1, 2, 3]
arr[2] // function (){return true;}

嵌套的数组

如果数组的元素还是数组,就形成了多维数组。

var a = [[1, 2], [6, 9]];
a[0][1] // 2
a[1][1] // 9

数组的本质

本质上,数组属于一种特殊的对象。typeof运算符会返回数组的类型是object。

typeof [1, 2, 3] // "object"

数组的键名其实也是字符串。之所以可以用数值读取,是因为非字符串的键名会被转为字符串。

var arr = ['a', 'b', 'c'];

arr['0'] // 'a'
arr[0] // 'a'

注意,这点在赋值时也成立。一个值总是先转成字符串,再作为键名进行赋值。

var a = [];

a[1.00] = 6;
a[1] // 6

对于数值的键名,不能使用点结构。

var arr = [1, 2, 3];
arr.0 // SyntaxError

length属性

数组的length属性,返回数组的成员数量。

['a', 'b', 'c'].length // 3

只要是数组,就一定有length属性。该属性是一个动态的值,等于键名中的最大整数加上1。

var arr = ['a', 'b'];
arr.length // 2

arr[2] = 'c';
arr.length // 3

arr[9] = 'd';
arr.length // 10

arr[1000] = 'e';
arr.length // 1001

length属性是可写的。

var arr = [ 'a', 'b', 'c' ];
arr.length // 3

arr.length = 2;
arr // ["a", "b"]

数组的空位

当数组的某个位置是空元素,即两个逗号之间没有任何值,我们称该数组存在空位(hole)。

var a = [1, , 1];
a.length // 3

如果最后一个元素后面有逗号,并不会产生空位。
数组的空位是可以读取的,返回undefined。

使用delete命令删除一个数组成员,会形成空位,并且不会影响length属性。

var a = [1, 2, 3];
delete a[1];

a[1] // undefined
a.length // 3

类似数组的对象

如果一个对象的所有键名都是正整数或零,并且有length属性,那么这个对象就很像数组,语法上称为“类似数组的对象”(array-like object)。

var obj = {
  0: 'a',
  1: 'b',
  2: 'c',
  length: 3
};

obj[0] // 'a'
obj[1] // 'b'
obj.length // 3
obj.push('d') // TypeError: obj.push is not a function

这种length属性不是动态值,不会随着成员的变化而变化。

练习

嵌套数组的练习
数组的本质的练习
数组的长度的练习

以后要讲的

  • in 运算符
  • for…in 循环和数组的遍历
  • 类似数组的对象深入讲解
JS逆向实战:顶像滑块验证码的自动化破解与模拟实现 在Web安全与自动化领域,JavaScript逆向工程是一项关键技术,它通过分析前端代码逻辑来理解应用的行为机制。其核心原理在于动态调试与静态分析结合,追踪数据流向与函数调用,从而还原加密算法与验证逻辑。这项技术的价值在于能够实现自动化操作、安全测试与数据采集,广泛应用于爬虫开发、安全审计与自动化测试等场景。本文聚焦于顶像滑块验证码的逆向分析,深入探讨其轨迹生成、加密算法与网络协议,并分享一套完整的自动化模拟实现方案,涵盖网络抓包、代码调试、算法还原等关键环节。 阅读详情

相关推荐

AI全栈开发实战:30天SaaS上线中的边界感与人机协作

在AI编程工具日益普及的今天,'用AI写代码'已从概念走向工程实践。本文聚焦于AI辅助全栈开发的核心逻辑——并非替代开发者,而是通过明确人机分工边界,将工程师角色升维至需求契约定义、安全合规审查与系统性集成决策层面。围绕Next.js、PostgreSQL、Vercel等AI友好型技术栈,深入解析类型驱动开发、参数化SQL生成、环境变量作用域、TS类型守卫等关键实践,揭示Copilot、Cursor、Claude三类工具在局部补全、跨文件分析与规范遵循上的能力错位与协同路径。适用于正评估AI落地价值的技术团

aikenqiu5098的博客 404

JavaScript学习笔记三-数组

eval命令 eval命令接受一个字符串作为参数,并将这个字符串当作语句执行。 eval('var a = 1;'); a // 1 放在eval中的字符串,应该有独自存在的意义,不能用来与eval以外的命令配合使用。举例来说,下面的代码将会报错。 如果eval的参数不是字符串,那么会原样返回。 eval(123) // 123 eval没有自己的作用域,都在当前作用域内执行,因此可能会修改当...

hotboyboy的博客 269

CloudFront+S3直传架构:终端用户安全上传文件到S3的完整实践

直传(Direct Upload)是一种让终端用户绕过应用服务器、直接将文件上传至对象存储的技术范式。其核心原理依赖预签名POST机制与精细的权限隔离,通过临时凭证实现最小权限访问控制。技术价值在于降低后端负载、提升上传并发能力、增强系统可扩展性与安全性。典型应用场景包括网页表单附件提交、移动App媒体上传、在线教育作业提交等。本文深入解析基于AWS CloudFront与S3构建生产级直传架构的关键环节:S3桶策略与CORS配置、CloudFront源站与缓存行为定制、以及前端预签名表单集成,覆盖权限设计

382

拜读阮一峰JavaScript教程笔记

读了不知道几遍,每次都没总结合做笔记,所以很多内容都记不住,如果平时没应用到实际中,那知识跟像过眼云烟,于是还是谢谢博客记记笔记,好好学习天天向上。 原教程链接:http://javascript.ruanyifeng.com/   let's go!   1. var a=1; 效果类似a=1,区别在于前者可用delete删除,后者不可 2.变量只声明,但未定义,值就为undefin

weiyangxiaoping的博客 1779

前端开发者转型大模型:核心知识体系与实战指南

随着AI技术的快速发展,大模型已成为当前技术领域的热点。理解Transformer架构及其核心组件(如稀疏注意力机制、旋转位置编码)是掌握大模型开发的基础。这些技术通过优化计算复杂度和位置信息处理,显著提升了模型性能。在实际应用中,前端开发者可以发挥其产品化思维优势,结合LoRA微调技术,快速实现模型适配与部署。例如,在电商推荐系统中,通过优化缓存策略和交互设计,能有效提升用户体验。本文深入探讨了前端开发者转型大模型所需的知识体系,包括数学基础补全、编程能力升级路径,以及工程化落地的关键环节,为技术人员提供

weixin_33888907的博客 424

OpenClaw:面向前端的本地化AI协作者运行时框架

AI编程助手正从云端API调用转向轻量、可控、低延迟的本地化运行时范式。OpenClaw作为专为前端工程师设计的AI协作者框架,基于Rust构建核心运行时,支持VSCode深度集成与飞书协同,在不上传源码前提下实现TS类型生成、代码重构、需求解析与本地RAG知识检索。其技术价值在于将AI能力嵌入真实开发流——通过理解eslint配置、tsconfig、项目上下文等工程元信息,输出高准确率、可审计、符合团队规范的代码。典型应用场景包括多维表格→接口定义、选中文本→无障碍重构、群聊需求→可执行逻辑块、文档知识→

weixin_33910385的博客 382

【笔记】eval

(function f() { 'use strict'; //严格模式 eval('var foo = 123'); //严格模式下,eval内部声明的foo变量,不会影响到外部 console.log(foo); })() (function f() { 'use strict'; var foo = 1; eval('foo = 2'); console.log(foo); //打印出来2,eval在严格模式下可以读写当前作用域的变量 })() var a = 1;

三斤木的博客 144

MEAN全栈开发实战:从环境搭建到端到端业务落地

MEAN架构是基于JavaScript的全栈开发范式,融合MongoDB(文档型数据库)、Express.js(轻量Web框架)、AngularJS(MVVM前端框架)与Node.js(事件驱动运行时),构成统一语言、统一异步模型、统一包管理的闭环工作流。其核心价值在于降低I/O密集型应用的开发熵值,通过无模式数据结构、声明式路由、双向绑定与非阻塞I/O,显著提升MVP验证效率。典型适用于内容管理系统、内部工具平台及实时协作类场景,尤其在数据模型高频演进、团队具备前端基础、交付周期紧迫等条件下展现出不可替代

ctpaknc9526的博客 400

Js代码执行时的那点事儿

在一些笔试的题中,有可能会出现类似下面这么一道题console.log(a) a(4); var a=1; console.log(a); function a() { console.log(2); } console.log(a); var a=3; console.log(a); function a(b) { console.log(a,b); a=5 co...

Yvan_Lin的博客 586

PX4笔记系列(二)vtol_att_control中的tiltrotor解析

update_vtol_state() 注释:采用两段切换的简单逻辑来进行过渡 当切换过渡开关后,飞机将会开始倾转动力,逐渐加速,当飞机获得足够速度后动力将会完全打到向前的位置。对于过渡返回阶段动力则是简单地倾转回来。 如果(不在向前过渡指令下): 当前vtol飞行模式: 1、旋翼模式 无操作 2、固定翼模式 令vtol飞行模式切换到过渡返回模式 3、P1过渡模式 进入过渡失败安全返回至旋翼模式 4、P2过渡模式 进入过渡失败安全返回至旋翼模式 5、过渡返回模式 记录过渡返回时间=当前时间-过渡开始

hypersonicss的博客 1881

Jenkins+docker 微服务实现自动化部署安装和部署过程

本文详细介绍了如何使用Docker部署Jenkins自动化服务器。主要内容包括:1)拉取Jenkins官方或BlueOcean镜像;2)创建容器并配置端口映射、数据卷挂载;3)设置防火墙规则;4)配置清华大学镜像加速;5)安装必要插件;6)SSH密钥配置;7)构建触发器设置;8)编写自动化构建脚本。通过Docker部署Jenkins可以简化安装流程,确保环境一致性,并利用容器特性实现快速启动和管理。文章提供了完整的配置步骤和注意事项,帮助用户快速搭建CI/CD环境。

qq_33665793的博客 1694

Javascript语法速查

如果只是声明变量而没有赋值,则该变量的值是undefined。undefined是一个 JavaScript 关键字,表示“无定义”。 var a; a // undefined 变量提升:JavaScript 引擎的工作方式是,先解析代码,获取所有被声明的变量,然后再一行一行地运行。这造成的结果,就是所有的变量的声明语句,都会被提升到代码的头部,这就叫做变量提升(hois...

weixin_30386713的博客 213

Zemax非序列模式微透镜阵列仿真:从建模到优化完整指南

光线追迹是光学系统仿真的核心技术,其原理基于几何光学与物理光学的光线传播模型,通过精确计算光线在光学元件中的折射、反射与散射路径,实现对系统性能的预测与评估。在微透镜阵列等复杂多通道光学系统中,传统序列模式因光线路径受限而难以准确模拟串扰与杂散光,非序列光线追迹技术则凭借其灵活的空间传播机制成为关键手段。该技术广泛应用于激光整形、光束匀化、3D传感及光场成像等领域,能够有效支持阵列结构设计与优化。Zemax非序列模式为微透镜阵列仿真提供了完整的建模、优化与公差分析流程,是光学工程师进行复杂系统设计的核心工具

weixin_29967003的博客 339

用js来实现那些数据结构及算法—目录

  首先,有一点要声明,下面所有文章的所有内容的代码,都不是我一个人独立完成的,它们来自于一本叫做《学习JavaScript数据结构和算法》(第二版),人民邮电出版社出版的这本书。github代码地址是https://github.com/loiane/javascript-datastructures-algorithms。   先说下我个人对这本书的...

weixin_33725722的博客 179

从ADS到SystemVue:当简单链路预算不够用时,我的射频系统级仿真方案升级实录

本文详细介绍了从ADS到SystemVue的射频系统级仿真升级路径,重点分析了基础链路预算在多端口元件和复杂场景下的局限性,并提供了SystemVue在非线性系统验证和跨域协同分析中的优势。通过实际案例展示了如何平滑迁移工具链,提升仿真精度和效率,适用于5G、毫米波雷达等现代射频系统设计。

weixin_34233974的博客 346

YOLOv11 改进 - 主干网络| 清华大学CloFormer AttnConv :利用共享权重和上下文感知权重增强局部感知,注意力机制与卷积的完美融合

本文介绍了轻量级视觉变换器CloFormer及其核心模块AttnConv在YOLOv11中的结合应用。为解决视觉变换器缩小到移动设备友好尺寸时性能下降的问题,提出CloFormer,其引入AttnConv操作符。AttnConv融合共享权重和上下文感知权重,先通过深度卷积提取局部表示,再用上下文感知权重增强特征,还结合传统注意力减少FLOPs,使模型感知高频和低频信息。我们将AttnConv集成进YOLOv11,实验表明,CloFormer在多个视觉任务中表现优越,改进后的YOLOv11也取得了良好实验结果

魔改工程师的博客 989

JavaScript解构赋值:从语法糖到数据契约的思维升级

解构赋值是ES6引入的核心特性,本质并非简化取值的语法糖,而是一种声明式的数据契约机制——它通过对象解构和数组解构分别建模‘无序键值’与‘有序序列’两种数据结构。其原理在于将运行时属性访问转化为编译期结构校验,实现错误前置、默认值精准控制(仅对undefined生效)及剩余属性隔离,显著提升代码健壮性与可维护性。在React props传递、API响应处理、TypeScript类型推导等工程场景中,解构已成为现代JavaScript开发的事实标准。本文深入剖析Object Destructuring与Arr

weixin_34007020的博客 361

环境配置与基础教程:当前大厂主流套路:使用 MLflow 全链路管理 YOLO 实验参数、指标与模型版本

YOLO26与MLflow结合实现高效实验管理 YOLO26通过移除DFL模块和实现无NMS端到端推理,在CPU推理速度上提升43%,同时简化了模型导出流程。MLflow 3.10/3.11版本新增多工作区支持、成本追踪和安全序列化等功能,为机器学习实验提供全生命周期管理。两者结合可解决传统"截图+Excel"式实验管理的痛点,实现参数追踪、指标对比和模型版本控制的自动化。 关键优势: YOLO26架构优化带来显著性能提升 MLflow提供实验到生产的全链路管理 原生集成简化了计算机视觉

ZXSXJ的博客 192

自学java多久可以工作_自学java,学多久可以自己找到工作?

目录前言阶段1 java语言基础1-1-Java基础语法小总结:1-2 -面向对象和封装小总结:1-3-Java语言高级小总结:阶段2 JavaWeb+旅游网小总结:01 HTML和CSS02 JavaScript03 BootStrap04 XML05 Tomcat06-Servlet和HTTP请求协议07 -Request和Respons08-Cookie和Session09-JSP,EL和J...

weixin_42393576的博客 234

断层错动和近断层地震动联合作用下软岩隧洞衬砌损伤分析

摘要 本文提出了一种基于Python的软岩隧洞衬砌损伤分析系统,重点研究断层错动和近断层地震动的联合作用效应。系统采用有限元方法建立隧洞-围岩体系模型,通过非线性动力分析评估衬砌结构损伤。研究内容包括:1)建立考虑应变软化的软岩本构模型;2)基于位错理论模拟断层错动过程;3)合成具有速度脉冲效应的近断层地震动;4)开发完整的动力响应分析流程。结果表明,所提出的方法能有效评估软岩隧洞在复杂地质条件下的抗震性能,为工程设计提供理论依据。 关键词:软岩隧洞、断层错动、近断层地震动、损伤分析、Python、有限元法

max500600的博客 845

【GameFramework框架内置模块】2、数据节点(Data Node)

这一篇讲数据节点DataNode,基本开发程序都会有类似数据节点作用的东西,数据节点的作用其实就是保存游戏运行时的一些缓存数据,比如用户登录信息、用户名、任务节点等等。数据一般会有增删改查这四种操作,在运行时的数据一般是使用单例或者静态属性,将数据存储在内存中而数据节点也是将数据存储在内存中,但是不用序列化数据,比使用单例或者静态属性要容易维护的多,特别时它的树形结构可以让我们很好的组织我们的数据结构,方便做增删改查操作。数据节点DataNode模块的数据的存储方式是以树形结构存储。

优快云博客专家,Unity3D高级软件工程师,《Unity 3D从入门到实战》作者。 3187

GLM-4.7前端场景优化器:中文代码理解与工程化落地指南

大语言模型在软件开发中的应用正从通用代码生成迈向垂直场景深度适配。作为聚焦中文技术生态的代码大模型,GLM-4.7并非传统意义的‘前端专用模型’,而是通过DOM操作感知、框架生命周期对齐、构建工具链兼容提示等机制,实现对React/Vue/TypeScript等前端技术栈的工程级增强。其核心价值在于提升中文语义理解精度与小样本泛化能力,显著降低CRUD联调、组件升级、自然语言转SFC等高频任务的重复成本。适用于需本地化部署、重视知识产权合规(Apache 2.0)、追求研发效能量化的前端团队与AI辅助平台建

weixin_33700350的博客 596

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

客户流失归因链:从R1-R2-R3三级信号实现可干预的实时预警

客户流失不是突发终点,而是行为序列演化的结果。理解用户流失本质,需回归‘行为意图识别’与‘决策过程建模’两大基础原理——它不依赖静态人口标签,而依托时间敏感、上下文感知、可解释的行为信号链。通过构建R1(风险萌芽)、R2(主动疏离)、R3(临界退出)三级归因链,企业能将滞后的事后分析,转化为提前14–28天的前置干预能力。该方法融合埋点语义化、动态时间窗口、高质量负样本构造与可解释性熔断等关键技术,已在SaaS、在线教育、金融科技等多类业务中验证其对挽留率、NDR及ROI的实质性提升。本文即围绕这一实战框架

weixin_33788244的博客 424

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

JavaScript字符串操作三大核心:索引、分割与变换

字符串是前端开发中最基础也最易被误解的数据类型。理解其不可变性、UTF-16编码本质及类数组行为,是掌握高效文本处理的前提。从字符索引(indexar)的代理对陷阱,到按语义分割(dividir)的正则与Intl.Segmenter选择,再到基于正则和函数回调的安全变换(manipular),每一步都关乎性能、安全与国际化支持。现代实践强调避免split('')遍历emoji、优先使用slice()而非substring()、用replace()配合捕获组实现动态逻辑,而非链式字符串转换。这些能力共同构成J

weixin_30908941的博客 402

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Bolt.new:自然语言驱动的前端工程流水线

text-to-app 是当前低代码与AI编程融合的关键技术路径,其本质是将自然语言需求映射为具备生产级基线的前端工程结构。它依托工程知识图谱实现框架选型、状态管理、UI集成等决策自动化,跳过传统脚手架配置地狱,直接输出可运行的React+TypeScript+Vite项目。相比拖拽式低代码平台,它调度的是‘工程决策链’而非组件;相比纯LLM代码生成,它通过预置模板、精准注入与适配层保障类型安全、无障碍支持与生态兼容性。典型应用场景包括MVP快速验证、SaaS落地页搭建、表单密集型工具开发等,特别适合需要兼

weixin_30587927的博客 307
上一篇: 每天3小时学前端之JS-第04天-字符串-布尔值-undefined和null
下一篇: 每天3小时学前端之JS-第06天-对象
零寂前端
博客等级 码龄11年 59粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值