bug1---JavaScript中对数组迭代添加值的时候,数组的长度发生变化

JavaScript中对数组迭代添加值的时候,数组的长度发生变化

下面的例子是初步接触js的时候写的函数小练习。
题目要求如下
js基础中函数的练习
按照Java的思维,在执行到数组越界那里的时候,本以为是数组下标会越界,但js中不存在数组的下标越界,js中的数组会根据给定的索引值进行长度的增加。
(代码中的注释是在我没发现这个问题之前添加的)

function is_auto_increment(){
	//
	document.write("this is an array which length is 5 <br />");
	var number = 5;
	var results = new Array(number);
	var sum = 0 ;
	//iterate through results 
	for(var i = 0 ; i <=results.length ;i++){
		var result = prompt('enter '+ i +'th course score');
		//if it's a NaN 
		if(isNaN(result)){
			alert("please enter a number ! ")
		}else {
			var result_num = parseInt(result);
			//if it's positive number 
			if(result_num >= 0){
				//执行到这一行本该出错的代码却继续执行下去,而且length+1
				results[i]=result_num;
				sum+=results[i];
			}else{
				alert("please enter a positive number !")
			}
		}
	}
	document.write("this is an array which length is "+results.length+"<br");
}

总结来说:
问题在于JavaScript中数组跟其他编程语言不同,数组的长度是可变化的
比如:
var list = new Array(3);
给定这个数组的长度是3;当执行代码:
list[5] = 1
之后,数组的长度会增加至5。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值