1.键值对new Array()的length值只统计下标是数字的键,可以使用for(var key in arr)的方式进行遍历所有元素。例如

  <script type="text/javascript">
var arr = new Array();//创建一个键值对数组
arr['xj'] = '小鸡';
arr['xy'] = '小鸭';
arr[] = '旺财';
arr[] = '小白';
arr[] = '财秋';
arr['sl'] = '水懒';
arr['hs'] = '海狮';
alert('arr.length='+arr.length);//正常来说length应该是7,但是结果却是4,因为最大数字引索为3
</script>

2. for-in 与  for循环的区别:

2.1.for循环和正常遍历一样。主要for-in 容易跟c#语言中的foreach混淆

实例代码

  <script type="text/javascript">
//模拟打分
window.onload = function () {
//模拟当鼠标放到星星上时,星星变成实心
document.getElementById('myTable').onmouseover = function () {
// 获取所有列 即星星
var tds = document.getElementById('myTable').getElementsByTagName('td');
//for (var mytd in tds) {
// alert(mytd + " " + typeof (mytd));
// tds[mytd].innerHTML='★'
//}
for (var i = ; i < tds.length; i++) {
alert(i + " " + typeof (i));
tds[i].innerHTML = '★'
}
}
}
</script>
</head>
<body>
<table id="myTable">
<tr>
<td>☆</td>
<td>☆</td>
<td>☆</td>
<td>☆</td>
<td>☆</td>
<td>☆</td>
<td>☆</td>
</tr>
</table>
</body>

其中有一段循环

                //for (var mytd in tds) {
// alert(mytd + " " + typeof (mytd));
// tds[mytd].innerHTML='★'
//}

这段中的mytd 并不是代表这对象,而是string类型的引索key,这和c#中的foreach有区别

直接写mytd.innerHTML='★';是错误的。
必须这么写 tds[mytd].innerHTML='★';

并且for-in 会遍历出所有所有元素,此例中的item、namedItem、length也会被遍历出来,并设置成innerHTML='★';

而使用for循环 其中的 i 是number类型,只会数字下标而不会是item等字符。所以使用for-in需谨慎。

               for (var i = ; i < tds.length; i++) {
alert(i + " " + typeof (i));
tds[i].innerHTML = '★'
}
												

javascript中个别方法注意事项的更多相关文章

  1. JavaScript中reduce()方法

    原文  http://aotu.io/notes/2016/04/15/2016-04-14-js-reduce/   JavaScript中reduce()方法不完全指南 reduce() 方法接收 ...

  2. JavaScript中的方法、方法引用和参数

    首先,我们来看一段代码,如果觉得不甚明白的,则本文会对你有益: var player = function (e) {             return (function f(m) {      ...

  3. 详解 JavaScript 中 splice() 方法

    splice() 方法是一个比较少用的方法,但是功能确实很好,并且在我们 coding 的时候,经常有需要 splice() 方法,先介绍一下该方法. 在 JavaScript 中 splice() ...

  4. JavaScript中的方法

    JavaScript中的方法 在JavaScript中,可以通过对象来调用对应的方法.在JavaScript中,有三个重要的window对象方法:用于显示警告信息的alert.用于显示确认信息的con ...

  5. JavaScript中Array方法总览

    title: JavaScript中Array方法总览 toc: true date: 2018-10-13 12:48:14 push(x) 将x添加到数组最后,可添加多个值,返回数组长度.改变原数 ...

  6. javascript中concat方法深入理解

    最近在恶补js知识的时候,总是会因为js强大的语法而感到震撼.因为以前对前端方面的疏忽,导致了一些理解的错误.因此痛改前非,下定决心,不管做什么事情,都要有专研的精神. 在介绍前,抛出一个问题:如何将 ...

  7. JavaScript中的方法重载

    对js有些了解的人都知道,在js中根本就不存在像C#中的那种方法重载,而有的只是方法的覆盖,当你在js中敲入两个或多个同名的方法的时候,不管方法(函数)的参数个数怎么个不同,这个方法名只能属于最后定义 ...

  8. 仿javascript中confirm()方法的小插件

    10天没有写博客了,不知道为什么,心里感觉挺不舒服的,可能这是自己给自己规定要去完成的事情,没有按照计划执行,总会心里不怎么舒服.最近事情挺多的,终于今天抽空来更新一下博客了. 今天写的是一个小插件. ...

  9. JavaScript 中 replace方法 替换所有字符串

    需要替换一个字符串中所有的某个字符串 java中使用replaceAll()方法就可以了.但是JavaScript中没有replaceAll方法 但是可以通过以下方法实现: /** * 空格替换为下划 ...

随机推荐

  1. vip会员统计表 (vip等级是灵活配置的 非写死1是金卡用户 2是什么 等)

      一个非常常见的报表,分析会员组成比例 以及最新增长情况 和上月同期会员增长情况. 比较特殊一点的是 报表中的 普通会员 和 金卡会员 临时会员 银卡会员 等列 都是根据会员等级配置表动态生成的(即 ...

  2. Android属性动画:插值器与估值器

    声明:本篇文章部分内容来自<Android开发艺术探索>. 我们都知道对于属性动画可以对某个属性做动画,而 插值器(TimeInterpolator)和 估值器(TypeEvaluator ...

  3. 一:JavaWeb和Tomcat的安装

    1.Java Web 是java技术用来解决相关web互联网领域的技术总和. 2.Servlet是Java Servlet的简称,称为小服务程序或服务器连接器,用Java编写的服务器端程序 3.JSP ...

  4. 数组也继承了Object类

    C++ 最根上的类有好多,也可以随便地定义.

  5. linux(centos7)下SVN服务器搭建手札

    linux(centos)下SVN服务器如何搭建?说到SVN服务器,想必大家都知道,可以是在LINUX下如何搭建SVN服务器呢?那么今天给大家分享一下linux(centos)搭建SVN服务器的思路! ...

  6. EJB系列 - EJB基础知识

    本人博客文章网址:https://www.peretang.com/basic-knowledge-of-ejb/ 什么是EJB 可移植的, 可重用的, 可伸缩的业务应用程序的平台 为什么选择EJB ...

  7. Python 系统学习梳理_【All】

    Python学习 1. Python学习---Python安装与基础1205 2. Python学习---PyCharm的使用学习 3. Python学习---Python数据类型1206 4. Py ...

  8. 搭建企业级全网数据定时备份方案[cron + rsync]

    1.1.1. 服务端的配置[192.168.25.141] Rsync的端口是:873 man rsyncd.conf 查看帮助 Rsync是Redhat默认自带的,这里只是做了rsync服务器端的后 ...

  9. php各种主流框架的优缺点

    ThinkPHP ThinkPHP(FCS)是一个轻量级的中型框架,是从Java的Struts结构移植过来的中文PHP开发框架.它使用面向对象的开发结构和MVC模式,并且模拟实现了Struts的标签库 ...

  10. [BZOJ 5252][LOJ 2478][九省联考2018] 林克卡特树

    [BZOJ 5252][LOJ 2478][九省联考2018] 林克卡特树 题意 给定一个 \(n\) 个点边带权的无根树, 要求切断其中恰好 \(k\) 条边再连 \(k\) 条边权为 \(0\) ...