令人迷惑的javascript

最近熟悉了一下javascript,发现的确很强大。但是也很诡异。

javascript的下标竟然从1开始。不过还好我可以接受。但有时它又从0开始。疯了!

用过javascript的人都知道它的数组下标是可以从1开始。但是它有时也从0开始,看下面的代码

 

var strr  =   " 1,2,3,4;5,6,7,8; "

function strSplit(str)
{
    var ss 
= str.split(';');
    
for(var i in ss)
    
{
    
        var sss 
= ss[i].split(',');
        
if(sss != "")
        
{
            
for(var j = 0; j < sss.length; j++)//注意这里是从0开始的
            {
                alert(sss[j]);
            }

        }

    }

}


strSplit(strr);

如果从1下标开始,那就开始只打印2。

所以说javascript真好,可以充分锻炼自己的找bug与排除bug的能力。

所以以后大家数组定一定的时候一定要从0下标开始。

javascript的For...in可以蔽掉所有的undefine对象。嗯,这点很好。但是它可能并不按照数组的已有顺序!

下面是一个把元素插入到数组中代码

 

function  insert(array,i,value)
{
    
var index = i;
    
for(;index <= array.length;index++)
    
{
        
if(array[index] == null)
        
{//这里是找到一个空位置
            
break;
        }

    }

    
    
for(var j = index; j > i;j--)
    
{//这里把现有数组的元素向后移
        array[j] 
= array[j-1];
    }

    array[i] 
= value;
    
}


var  o  =   new  Array;
o[
1 =   1 ;
o[
3 =   2 ;
insert(o,
1 , 3 );//在1的位置插入3
var  str = "" ;
for ( var  x  in   o)
{
    str
+=o[x];
}

str
+= " ! "
for ( var  x  =   1 ; x  <  o.length; x ++ )
{
    
if(o[x]!= null)
    str
+=o[x]
    
}

alert(str);//打印结果是 321!312
我是解释不通javascript是怎么遍历的。但的确不是按照顺序遍历的
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值