JavaScript初学者最容易犯的错误(二)

JavaScript 高手也会犯的 10 个错误 为了更好地理解 JavaScript 的复杂之处,编写出更干净、更高效、更可靠的代码,我们将深入探讨 10 个即使是经验丰富的 JavaScript 开发者也容易犯的错误。这篇文章将揭示这些错误背后的原因,并提供相应的解决方案,帮助你避免这些陷阱,提升你的 JavaScript 编码水平,最终写出更加优秀、更具可维护性的代码。 阅读详情

(欢迎访问:http://www.3body.tk/iblog/)

对数组使用for…in语法

for…in 语句在w3cschool中的定义

“用于对数组或者对象的属性进行循环操作”。
for ... in 循环中的代码每执行一次,就会对数组的元素或者对象的属性进行一次操作。

for…in 的语法:

for (prop in obj)
{
    //...do something to prop or obj[prop]
}

这种语法看上去比普通的for循环简洁的多,但是在项目开发过程中,建议还是尽量不要使用for…in来对数组进行遍历操作。

因为在上述代码中,prop是作为对象的属性来定义的。虽然我们可以用obj[prop]取到数组中的每个元素,并且打印prop的话也是0 ,1,2,3…,但是这儿的prop与普通数组的下标并不一样,它并没有定义为一个整型,而是作为一个属性字符串,所以如果我们 将它当成一个整数来处理,有时候就会出现一些奇怪的错误。

看下面的代码:

var arr = ["sdf","ss","dd","fd","we","as","fds","hj","tyu","nhg"];
var length = arr.length;

for(index in arr) {
    if (index < length - 1) {

        arr[index] = arr[index + 1];

        alert(arr[index]);

    }

}

实现的功能很简单,就是将数组中所有的元素往前移一位,但是运行这段代码的时候会发现,alert打印出来的东东全是undefined 。就是因为index实际上是作为一个字符串在使用的,而“+”操作符对于字符串来说是连接操作,所以index+1的结果是“01”,“11” ,“21”…这种。然后用arr[index + 1]取值的时候便是取arr[“01”],自然是获取不到的。

除了上述情况外,还有就是Array在某些时候可能会被修改,比如在外部给它增加了一些属性,方法神马的,这样的话使用 for…in遍历会将增加的东东也遍历到,同样会出错。

所以建议在编码的时候,对数组遍历使用普通的for循环。尽量不要使用for…in来操作。

【强化学习】11 —— Double DQN算法与Dueling DQN算法 可以看到由于数据点的分布,使得拟合出的价值函数无法与真实的价值函数吻合,甚至在部分区域产生了明显的偏差。Dueling DQN 是 DQN 另一种的改进算法,它在传统 DQN 的基础上只进行了微小的改动,但却能大幅提升 DQN 的表现。这样,即使其中一套神经网络的某个动作存在比较严重的过高估计问题,由于另一套神经网络的存在,这个动作最终使用的值不会存在很大的过高估计问题。.在同一个状态下,所有动作的优势值之和为 0,因为所有动作的动作价值的期望就是这个状态的状态价值。环境的状态包括倒立摆角度的正弦值。 阅读详情

相关推荐

AP发票批量付款程序(WEB ADI)

CREATE OR REPLACE PACKAGE MEW_AP_BATCH_PAYMENTS_PKG IS   PROCEDURE MAIN(P_BATCH_ID          NUMBER                 ,P_ORG_ID            NUMBER                 ,P_BANK_ACCOUNT_NAME VARCHAR2

储藏室 5051

开发者最容易犯的13个JavaScript错误

开发者最容易犯的JavaScript错误,总结出13个。 这些当中可能少不了你犯的错误。 我们描述了这些陋习,并列出来解决办法,希望对开发者有帮助。 1.for…数组迭代的用法 Usage of for..in to iterate Arrays 举例: var myArray = [ “a”, “b”, “c” ]; var totalElements = myArray.length

coffeescript的专栏 679

水环境综合管控平台完整方案

水环境综合管控平台项目(2026-2027)摘要 项目概况: 总投资5亿元的水环境综合管控平台项目,是国家数字政府与生态文明建设战略的重要实践。项目严格遵循2026年最新政策标准,整合物联网、大数据和AI技术,构建覆盖水质监测、污染溯源、生态保护等全流程的智能管控体系。 核心内容: 系统架构:采用五层设计(基础设施层至展示层),集成10大核心功能模块,包括水质动态监测、污染智能溯源和生态评估预警系统; 技术创新:运用2026年最新边缘计算和数字孪生技术,实现毫秒级水质异常响应和三维流域仿真; 实施规划:分7

随读手记 405

JavaScript 初学者容易犯的几个错误,你中招没?

JavaScript 是对初学者比较友好的一门编程语言,基本上花个半小时看下语法就能写出能运行的代码。JavaScript 是动态脚本语言,对数据类型没有太多的限制,写起来非常灵活。但正因为如此,初学者如果不深入了解语言本身,往往会犯一些错误,从而导致一些很难发现的 bug。 抛开 JavaScript 语言设计层面的问题不说,毕竟它是 Brendan Eich 当年用短短十天时间设计出来的,有点...

kaysonli的博客 270

iPad秒变Mac副屏的隐藏技巧:用BetterDisplay实现无线竖屏+90度锁定

本文详细介绍了如何利用BetterDisplay软件突破苹果原生“随航”(Sidecar)功能的限制,将iPad无线设置为Mac的竖屏副屏,并实现90度方向锁定。通过创建虚拟显示器、配置分辨率与旋转参数,并校准鼠标指针,用户可以高效利用iPad的纵向空间进行文档阅读、编码等工作,显著提升多屏协作效率。

weixin_29266647的博客 603

996引擎 - 读写变量性能测试

单轮100万次读写,取3轮平均耗时(毫秒),有效读取率均为100%,数值越小性能越优。

灵台方寸山斜月三星洞 244

总结下java经常犯的错误

编写代码是一种艺术,认识错误是我们代码改进的重要途径之一。以下情况并非大家都能碰到过,但希望提高代码质量的人都引以为戒。以下各种情况,都是初学者经常犯的错误。 1.1       字符串没有判断是否为空 1.1.1        直接插入数据库 这种情况经常出现在服务器的java代码中,当从用户输入的表单中获取用户输入的信息时,通常认为客户端输入的信息就是我们想要的信息,直接插入到数据库。结

u010865364的专栏 1302

华为OD机试双机位C卷-用户入网定期复评(C/C++/Py/Java/Js/Go)

华为OD机试(机考)双机位C卷 【用户入网定期复评】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【用户入网定期复评】。

qq_45776114的博客 837

JavaScript中常见的错误,你犯了几个?

  初学者在学JavaScript这门语言的时候,最害怕看到的,应该就是控制台出现的红色错误信息!其实解决这些错误并不难,这是大多数初学者难以跨越的一个心理障碍而已。   你只要认真看一看错误信息,其实解决错误是非常简单的。别说你英语不好,可以解决的问题,都不叫问题。   列举一些常见错误类型,大家可以看一看:   1、SyntaxError   语法错误   这应该是刚开始写代码最容易出现的错误了   2、TypeError   类型错误      这里要说明一下,错误信息为什么

qinge_Crazy的博客 1003

ExpressLRS(ELRS)接收机技术全景:从历史演进、技术底层到产业生态全解析——上

ExpressLRS(ELRS)是一种由全球开源社区驱动的双向射频遥控链路协议栈,其接收机作为核心终端,承担信号接收解调、遥控指令解析、飞控数据交互与遥测回传等关键功能。自2018年问世以来,ELRS凭借极致性能、低成本、开放生态和强兼容性,从航模DIY方案发展为消费级无人机领域的事实标准,并逐步渗透工业级场景。 ELRS接收机采用模块化分层架构,支持2.4GHz和900MHz双频段,通过LoRa、FLRC、FSK多调制模式实现低延迟与远距离平衡。其核心技术包括自适应跳频抗干扰、TDD双向链路和极简数据包。

bother3000的博客 303

IMEI引起的无法驻网问题

问题不复杂,场景很简单,如上图,UE在进行LTE attach过程时,在送完NAS security mode complete后,就立刻收到了网络attach reject 带cause 6 Illegal ME,根据协议描述这个cause 代表ME不被网络可接受,例如ME在禁止名单或者黑名单中就会有这种cause。然而前方在报这个问题的时候,也是知道SIM卡和手机IMEI在运营商那边没能成功绑定,然后才报的问题,要查看手机是不是有问题...... 告诉前方原因后,还认为是手机问题,告知要继续查。

asd199086的博客 1426

初学者学习Javascript很吃力怎么办?到底该如何学习Js?

Js给初学者的印象总是那么的“杂而乱”,相信很多初学者都在找轻松学习Js的途径。在这里给大家总结一些学习Js的经验,希望能给后来的学习者探索出一条“轻松学习Js之路”。 Js给人那种感觉的原因多半是因为它如下的特点: A:本身知识很抽象、晦涩难懂,如:闭包、内置对象、DOM。 B:本身内容很多,如函数库、对象库就一大堆。 C:混合多种编程思想。它里面...

diaozhu1028的博客 3165

QGis二次开发 —— 1、win10/win11搭建Vs2017-QGis3.40.12环境(附Vs2017环境效果,附全部问题解决方法)(附:Qt助手加入QGis接口说明文档)

QGis二次开发 —— 1、Windows10搭建Vs2017-QGis环境(附Vs2017环境效果)(附:Qt助手加入QGisA接口说明文档)

1362

Javascript容易犯的错误

Javascript写代码时容易犯的错误 切换变量0和1 // if判断可以这么写 let flag = 0; if (flag === 0) { flag = 1; } else { flag = 0; } // 也可以用三目运算符 flag = flag === 0 ? 1 : 0; // 也可以使用位异或(^) flag ^= 1; 一般我建议在js上是尽量少用位运算,为什么呢?因为位运算其实二进制数执行运算,包括与&、或|、异或^、非.

442

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

syntaxerror是什么错误_JavaScript中常见的错误

前言:初学者在学JavaScript这门语言的时候,最害怕看到的,应该就是控制台出现的红色错误信息!其实解决这些错误并不难,这是大多数初学者难以跨越的一个心理障碍而已。你只要认真看一看错误信息,其实解决错误是非常简单的。别说你英语不好可以解决的问题,都不叫问题。列举一些常见错误类型,大家可以看一看:1、SyntaxError语法错误这应该是刚开始写代码最容易出现的错误了错误原因:变量名以数字开头错...

weixin_39979159的博客 7747

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

初学者学习JAVASCRIPT很吃力怎么办?到底该如何学习JS?

        Js给初学者的印象总是那么的“杂而乱”,相信很多初学者都在找轻松学习Js的途径。在这里给大家总结一些学习Js的经验,希望能给后来的学习者探索出一条“轻松学习Js之路”。Js给人那种感觉的原因多半是因为它如下的特点:A:本身知识很抽象、晦涩难懂,如:闭包、内置对象、DOM。B:本身内容很多,如函数库、对象库就一大堆。C:混合多种编程思想。它里面不但牵涉面向过程编程思想,又有面向对象编...

Arno_Liu90 的博客 4875

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

主进程中发生javascript错误_JavaScript中常见的错误

前言:初学者在学JavaScript这门语言的时候,最害怕看到的,应该就是控制台出现的红色错误信息!其实解决这些错误并不难,这是大多数初学者难以跨越的一个心理障碍而已。你只要认真看一看错误信息,其实解决错误是非常简单的。别说你英语不好可以解决的问题,都不叫问题。列举一些常见错误类型,大家可以看一看:1、SyntaxError语法错误这应该是刚开始写代码最容易出现的错误了错误原因:变量名以数字开头错...

weixin_39992665的博客 4902

javascript错误_您可能会犯的javascript错误

javascript错误Today I am going to talk about common mistakes you may be making in your Javascript project.今天,我将讨论您在Javascript项目中可能犯的常见错误。 Javascript is one of the most popular language in the world but ...

weixin_26735419的博客 485

JavaScript中8个容易犯的错误

1. 你是否尝试过对数组元素进行排序? JavaScript默认使用字典序(alphanumeric)来排序。因此,[1,2,5,10].sort()的结果是[1, 10, 2, 5]。 如果你想正确的排序,应该这样做:[1,2,5,10].sort((a, b) => a - b) 2. new Date() 十分好用 new Date()的使用方法有: 不接收任何参数:返回当前...

weixin_42246997的博客 180

JavaScript初学者最容易犯的错误(一)

欢迎访问 http://www.3body.tk/iblog this指针的错误理解 在使用JavaScript做面向对象编程的时候,很多有基本面向对象概念的新手都会在不经意间将this指针指向了错误的位置而不自知。如下所示: var Lily = function(id) { this.name = "lily"; $("body").click(functi

1131
上一篇: Sass 技术和相关工具介绍
下一篇: 有做美工的同志路过没?帮忙提点意见~~
凄凄迷人
博客等级 码龄21年 58粉丝 58原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值