重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
Javascript中没有动态数组的概念,所有数组都是动态的,即使下标为负的也不会报错,用法:
创新互联专业为企业提供商都网站建设、商都做网站、商都网站设计、商都网站制作等企业网站建设、网页设计与制作、商都企业网站模板建站服务,十年商都做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
var arr=[];
for(var i=0;i10;i++){
arr.push(i*2)
}
console.log(arr);//[0,2,4,6,8,10,12,14,16,18];
console.log(arr[1000])//undefined
console.log(arr[-1])//undefined
不需要指定大小,直接用就行,“越界”也不会报错,只是没有值
JS代码里的catch(e)是用来捕获错误的。
js如果出现错误,浏览器则会在console面板中打印出错误。
为了在js出现错误的时候,把异常捕获掉,这样程序仍能正常运行下去。
1、如下,如果这样写:
console.log(i);
vara=6;
console.log(++a);
因为i未定义,出现错误,那么js就卡在这里了,预期的输出a的结果也不执行了。
2、如果,使用trycatch:
try{
console.log(i);
}catch(e){
console.log(e)
}
vara=6;
console.log(++a);
那么,i未定义的错误被捕获掉了,程序仍能继续运行下去,最后输出a的结果是7。
扩展资料
在JavaScript,例外是作为Error对象出现的。Error对象有两个属性:name属性表示例外的类型,message属性表示例外的含义。根据这些属性的取值。
Error.name的取值一共有六种,如下:
Error:()的使用与定义不一致
RangeError:数值越界
ReferenceError:非法或不能识别的引用数值
SyntaxError:发生语法解析错误
TypeError:操作数类型错误
URIError:URI处理函数使用不当
数组越界了subscriptnumbers.length不能等于,
例var a = [1,2,3]; a.length=3;下标就是0,1,2,而你的的是0,1,2,3
原文:
JavaScript中的数组就是一个稍微有点特殊的普通对象.在Array.prototype.push方法执行时,会先把每个要push的元素push进去,也就是定义多个自身属性(ES5 15.4.4.7.5).
然后才设置数组的length属性为最大的索引值+1(ES5 15.4.4.7.5),这个例子中就是Math.pow(2, 32) + 1,这时才会报错(ES5 15.4.5.1.3.d),但上面的元素已经push进去了.
如果再次push的话,还会从当前的length属性-1的那个索引处开始push,也就出现了覆盖而不是继续追加的情况.
没有 js的数组是hash表,如果找不到会返回undefined
由于数组的元素个数默认情况下是不作为实参内容传入调用函数的,因此会带来数组访问越界的相关问题,解决问题方法,可以用传递数组元素个数的方法即:用两个实参,一个是数组名,一个是数组的长度。
举例:
#includestdio.h
void PutArray(int *p, int length)
{
// 在此判断入口参数p和length的有效性
……
for(int
i=0;ilength;i++)
printf("%d\t",p[i]);
}
void main()
{
int a[3]={2,4,6} ;
printf("数组a[3]调用函数PutArray的结果为:\n");
PutArray(a,
sizeof(a)/sizeof(a[0]));
}