`
leng_cn
  • 浏览: 301902 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

javascript中var引起的问题

阅读更多
今天写一个递归程序求一棵树节点的所有子节点,方法是这样的
function getAllChildNodes() {
node = tree.getSelected();
var aryNodeId = new Array();
getChildNodesByCurrentNode(node,aryNodeId);
alert(aryNodeId.toString());
}
function getChildNodesByCurrentNode(node,aryNodeId) {
try {
for(i=0;i<node.childNodes.length;i++) {
var cnode = node.childNodes[i];
aryNodeId.push(cnode.text);
if(cnode.childNodes.length>0) {
getChildNodesByCurrentNode(cnode,aryNodeId);
}
}

}catch(e) {
alert(e);
}
}


其中我的递归函数getChildNodesByCurrentNode无论如何不能获得我想要的结果,只是取得了一个枝节点的所有数据,让我很是郁闷,后来把程序并给了同事让他帮我检查一下,发现了问题的所有,就是var的定义,即for循环中我少了var i=0.........
正确的方法是

function getChildNodesByCurrentNode(node,aryNodeId) {
try {
for(var i=0;i<node.childNodes.length;i++) {
var cnode = node.childNodes[i];
aryNodeId.push(cnode.text);
if(cnode.childNodes.length>0) {
getChildNodesByCurrentNode(cnode,aryNodeId);
}
}

}catch(e) {
alert(e);
}
}

大功告成,唉,真是活到老学到老,遇上了才发现原来一个小小的var原来作用大大呀,呵呵
分享到:
评论

相关推荐

    javascript中加var和不加var的区别 你真的懂吗

    在JavaScript编程语言中,`var` 是...正确地使用`var`声明变量可以帮助维护代码的清晰性和可维护性,同时避免因全局变量引起的潜在问题。对于那些未声明的变量,应尽量避免使用,以免引入不必要的复杂性和潜在的错误。

    javascript中var的重要性分析

    接下来,我们将详细探讨var关键字在JavaScript中的重要性以及不正确使用它可能引发的问题。 首先,var关键字用于声明一个变量。它告诉JavaScript引擎,接下来的标识符将用作变量名,这将保留一块内存空间来存储信息...

    Javascript中括号“[]”的多义性

    在JavaScript编程语言中,中括号“[]”具有...了解了JavaScript中括号的这些用法后,我们能更好地理解和编写代码,避免因为不熟悉语法特性而引起的错误。在日常编程中,灵活运用这些知识可以提高代码的可读性和效率。

    事半功倍之Javascript

    在 JavaScript 中,可以声明并初始化多个变量,例如: ```javascript var answer1, answer2, answer3, answer4; answer1 = 9; answer2 = 2.5; answer3 = "MilkeyMay"; answer4 = true; ``` 这里分别声明了一个整数、...

    ES6所改良的javascript“缺陷”问题

    ES5中变量作用域的问题主要由var关键字引起,使用var声明的变量具有函数作用域或全局作用域,并且存在变量提升现象。ES6通过引入let和const改善了这一情况,防止了内层变量无意间覆盖外层变量的问题,并且让变量的...

    传智播客JavaScriptL7.rar

    这还包括理解`this`关键字的用法,它是JavaScript中经常引起混淆的一部分。 JavaScript的事件处理和DOM操作也是重要一环。通过学习如何监听和触发用户事件,以及如何使用DOM API来操作页面元素,你可以创建动态和...

    JavaScript 秘密花园.pdf

    《JavaScript的秘密花园》是一份持续更新的文档,致力于揭示JavaScript中那些鲜为人知且容易引起混淆的特性与用法。这份指南不仅帮助开发者规避常见的陷阱,还提供了针对性能优化、错误排查及避免不良编程习惯的宝贵...

    详解JavaScript中双等号引起的隐性类型转换_.docx

    在JavaScript中,双等号(==)用于比较两个值是否相等,但在这个过程中,它可能会引起隐性类型转换,即在比较之前自动将不同类型的值转换为同一类型。这种转换有时会导致意料之外的结果,因此理解其工作原理对编写...

    JavaScript中数组常见操作技巧

    ### JavaScript中数组常见操作技巧 #### 数组的创建与初始化 在JavaScript中,创建数组通常使用数组字面量 `[]`。这与使用 `new Array()` 不同,因为后者在某些情况下用于创建指定长度的数组,而数组字面量则更加...

    JavaScript_语言基础.pdf

    在实际编写JavaScript代码时,推荐通过var关键字声明变量,这样做可以避免变量作用域的问题,使得变量在局部作用域内可用,从而减少全局变量可能引起的命名冲突。 龙刚讲师通过自身的经验,使得这门课程不仅包含...

    javascript基本面试题

    JavaScript是Web开发中不可或缺的一部分,尤其在前端领域,它的地位尤为重要。面试中,JavaScript的基本知识是考察候选人技术能力的重要部分...这些都是JavaScript面试中常见的问题,掌握这些知识有助于提升面试表现。

    JavaScript学习小结(一)——JavaScript入门基础

    一、JavaScript语言特点 1.1、JavaScript是基于对象和事件驱动的(动态的)  它可以直接对用户或客户输入做出响应,无须经过Web服务程序。... 在定义变量时,统一使用”var 变量名”表示,例如:var str;甚至可

    javascript中cookie对象用法实例分析.docx

    另外,为了避免特殊字符引起的问题,可以使用`encodeURI()`函数来编码Cookie的值。 ##### 读取Cookie 读取Cookie也是通过`document.cookie`属性完成的,但读取时需要解析这个字符串。示例代码如下: ```javascript ...

    JavaScript 中的转译符

    在编程的时候,需要注意特殊字符的问题,因为这些字符可能会在运行时引起问题。 转义序列字符: * \b 退格 * \f 走纸换页 * \n 换行 * \r 回车 * \t 横向跳格 (Ctrl-I) * \' 单引号 * \" 双引号 * \\ 反斜杠 在...

    Javascript编程语言的编程规范

    正确的注释可以帮助阅读者快速理解代码的功能,而不准确或不必要的注释则可能引起混淆。 #### 四、总结 良好的编程规范对于提高代码质量和团队协作效率至关重要。通过遵循上述JavaScript编程规范,可以显著提升代码...

    JavaScript,前段开发

    - **作用域**: `var` 声明的变量具有函数作用域而非块级作用域,这意味着即使在不同的代码块中声明相同的变量也不会引起冲突。 - **变量提升**: `var` 声明的变量会被提升至当前作用域的顶部,这意味着可以在声明...

    Google JavaScript 编码规范

    4. **嵌套函数**:应避免在块内声明函数,因为这种做法可能会引起一些浏览器中的性能问题,尤其是在IE中。 5. **异常处理**:在处理异常时,应尽量避免使用空的`catch`语句,这样做可能会隐藏程序的错误,使得调试...

    javascript 小写金额转化成大写

    在IT行业中,尤其是在财务系统和电子商务领域,将小写金额转换为大写是常见的需求,因为大写金额在正式的财务凭证中使用,可以避免因数字混淆而引起的错误。JavaScript作为一种广泛使用的前端脚本语言,提供了丰富的...

    JavaScript语言精粹(JavaScript.The.Good.Parts).pdf

    本书主要目的是帮助读者深入理解并掌握JavaScript的核心概念和技术,通过去除那些容易引起混淆或错误的部分,使读者能够更高效地编写高质量的JavaScript代码。 #### 二、核心内容与特点 1. **简化JavaScript**: ...

Global site tag (gtag.js) - Google Analytics