一,问题描述
var old_id = 1, imgNum=5; $(".num-l a").click(function(){ var num = $(this).html(); //假设此处为2 old_id = num; }); function doNextImage() { var new_id = old_id+1; //new_id为21而不是预期的3 if(new_id > imgNum) new_id = 1; alert(new_id ); //输出字符串21 }
二,问题原因
在js语法中,所有变量类型为弱引用类型;虽然在定义old_id变量时赋值为整数1,指定old_id为int型。但是在后续的赋值中 var num = $(this).html();old_id = num;由于num为字符串类型,所以old_id又变为字符串类型了,这才出现new_id的值不是我们预期的整数3,而是字符串21(相加操作变成字符串的拼接了)。从而带来了后续程序逻辑上的错误!!!
三,解决办法
var num = parseInt($(this).html()); //parseInt(),parseFloat()等都是js内置的函数,用于将字符串转换为数字型。
相关推荐
引用类型(Reference type)引用类型是javascript中一种内部类型。它主要是当做一个指代,代替一个变量或者函数,当然在需要真实值时,又可以通过它寻找到真实值。 2.引用类型的结构引用类型的值时由两部分构成,一...
(1)子页面调用父页面的方法或者变量: window.parent.方法()或者变量名 window.parent相当于定位到父页面 之后的操作和在父页面中写代码一样写 window.parent.aa();//调取aa函数 window.parent.bb;//调取bb变量 ...
JavaScript中的变量管理是编程中非常基础且重要的概念,它涉及到变量的作用域、生命周期以及如何避免潜在的安全问题。本文将深入探讨JavaScript的全局变量与局部变量。 首先,我们要明白JavaScript的作用域划分标准...
在JavaScript编程中,闭包是一个非常重要的概念,它的特性使得函数可以访问到外部函数作用域中的变量。然而,闭包如果使用不当,非常容易引起...通过以上措施,可以最大限度地减少JavaScript闭包所带来的内存泄漏问题。
JavaScript是一种动态类型语言,这意味着变量的数据类型可以在运行时改变。...在编程时,需要根据实际情况选择合适的变量类型,特别是在处理复杂数据结构时,需注意引用类型带来的深拷贝和浅拷贝的问题。
变量引用的使用可以有效地控制变量的生命周期和内存使用,而掌握不同的作用域类型则可以合理地管理变量的作用范围和访问级别。通过本文的介绍,希望读者能够在实际开发中更加自如地运用PHP的这些特性。
而堆内存则用于存储引用类型,其生命周期不受局部作用域限制,只有当没有变量引用它时,垃圾回收机制才会回收该对象所占的内存。 理解这些概念对于优化代码性能和避免潜在的内存泄漏问题至关重要。例如,如果误用浅...
本文将对JavaScript for循环和闭包进行浅谈,并提供六种解决方案来解决for循环中的闭包问题。 首先,让我们来看一个例子。我们有一个HTML文件,其中包含五个段落,每个段落都是一个p元素。我们想实现的是,每当点击...
在JavaScript编程语言中,变量名和函数名重名是一个常见的问题,这主要涉及到JavaScript的预解析(hoisting)机制和作用域规则。本文将深入探讨这个问题,并解释为什么在某些情况下,代码可能会出现“is not a ...
ECMAScript是JavaScript的标准化规范,而Array类型是ECMAScript中最常用的引用类型之一。在JavaScript中,Array类型是不同于其他编程语言中数组的,其特性包括可以保存任意类型的数据以及动态调整长度。 首先,...
在JavaScript中,数据类型分为两大类:基本类型(包括数字、字符串、布尔值、null和undefined)和引用类型(对象、数组和函数)。这两种类型的变量在赋值和作为参数传递时的行为有所不同。 对于基本类型,赋值操作...
JavaScript中的变量管理是一个关键概念,理解全局变量与局部变量的区别对于编写高效且无错误的代码至关重要。在这篇文章中,我们将深入探讨这两个概念以及它们在JavaScript中的工作方式。 首先,JavaScript的作用域...
本文将探讨几个关键的编码规范方面,包括文件引用、代码排版、命名规则、变量声明、作用域以及特殊符号的使用。 首先,JavaScript文件应独立为.js文件,然后通过HTML的`<script src="filename.js">`标签引入,以...
JavaScript中基本包装类型是指为了操作简单的基本数据类型,ECMAScript提供了三个特殊的引用类型:Boolean、Number和String。这些引用类型与普通对象类似,可以调用一些方法来操作对应的基本类型数据,但它们具有...
- 如果a.js中有一个未声明的变量undeclaredVariable,而在b.js中尝试访问它,Node.js将会抛出错误,因为变量作用域限制,b.js无法访问a.js的局部未声明变量。 综上所述,理解Node.js的模块机制对于开发高效、可维护...
1. 文件引用:建议将JavaScript程序代码存放在以.js为扩展名的文件中,并在HTML文件中通过<script src="filename.js">标签引入。这是因为将JavaScript代码和HTML代码分离可以降低HTML文件的体积,提高加载速度和代码...