Javascript中沒有動(dòng)態(tài)數(shù)組的概念,所有數(shù)組都是動(dòng)態(tài)的,即使下標(biāo)為負(fù)的也不會(huì)報(bào)錯(cuò),用法:

創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供商都網(wǎng)站建設(shè)、商都做網(wǎng)站、商都網(wǎng)站設(shè)計(jì)、商都網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、商都企業(yè)網(wǎng)站模板建站服務(wù),十年商都做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
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
不需要指定大小,直接用就行,“越界”也不會(huì)報(bào)錯(cuò),只是沒有值
JS代碼里的catch(e)是用來捕獲錯(cuò)誤的。
js如果出現(xiàn)錯(cuò)誤,瀏覽器則會(huì)在console面板中打印出錯(cuò)誤。
為了在js出現(xiàn)錯(cuò)誤的時(shí)候,把異常捕獲掉,這樣程序仍能正常運(yùn)行下去。
1、如下,如果這樣寫:
console.log(i);
vara=6;
console.log(++a);
因?yàn)閕未定義,出現(xiàn)錯(cuò)誤,那么js就卡在這里了,預(yù)期的輸出a的結(jié)果也不執(zhí)行了。
2、如果,使用trycatch:
try{
console.log(i);
}catch(e){
console.log(e)
}
vara=6;
console.log(++a);
那么,i未定義的錯(cuò)誤被捕獲掉了,程序仍能繼續(xù)運(yùn)行下去,最后輸出a的結(jié)果是7。
擴(kuò)展資料
在JavaScript,例外是作為Error對(duì)象出現(xiàn)的。Error對(duì)象有兩個(gè)屬性:name屬性表示例外的類型,message屬性表示例外的含義。根據(jù)這些屬性的取值。
Error.name的取值一共有六種,如下:
Error:()的使用與定義不一致
RangeError:數(shù)值越界
ReferenceError:非法或不能識(shí)別的引用數(shù)值
SyntaxError:發(fā)生語法解析錯(cuò)誤
TypeError:操作數(shù)類型錯(cuò)誤
URIError:URI處理函數(shù)使用不當(dāng)
數(shù)組越界了subscriptnumbers.length不能等于,
例var a = [1,2,3]; a.length=3;下標(biāo)就是0,1,2,而你的的是0,1,2,3
原文:
JavaScript中的數(shù)組就是一個(gè)稍微有點(diǎn)特殊的普通對(duì)象.在Array.prototype.push方法執(zhí)行時(shí),會(huì)先把每個(gè)要push的元素push進(jìn)去,也就是定義多個(gè)自身屬性(ES5 15.4.4.7.5).
然后才設(shè)置數(shù)組的length屬性為最大的索引值+1(ES5 15.4.4.7.5),這個(gè)例子中就是Math.pow(2, 32) + 1,這時(shí)才會(huì)報(bào)錯(cuò)(ES5 15.4.5.1.3.d),但上面的元素已經(jīng)push進(jìn)去了.
如果再次push的話,還會(huì)從當(dāng)前的length屬性-1的那個(gè)索引處開始push,也就出現(xiàn)了覆蓋而不是繼續(xù)追加的情況.
沒有 js的數(shù)組是hash表,如果找不到會(huì)返回undefined
由于數(shù)組的元素個(gè)數(shù)默認(rèn)情況下是不作為實(shí)參內(nèi)容傳入調(diào)用函數(shù)的,因此會(huì)帶來數(shù)組訪問越界的相關(guān)問題,解決問題方法,可以用傳遞數(shù)組元素個(gè)數(shù)的方法即:用兩個(gè)實(shí)參,一個(gè)是數(shù)組名,一個(gè)是數(shù)組的長度。
舉例:
#includestdio.h
void PutArray(int *p, int length)
{
// 在此判斷入口參數(shù)p和length的有效性
……
for(int
i=0;ilength;i++)
printf("%d\t",p[i]);
}
void main()
{
int a[3]={2,4,6} ;
printf("數(shù)組a[3]調(diào)用函數(shù)PutArray的結(jié)果為:\n");
PutArray(a,
sizeof(a)/sizeof(a[0]));
}
網(wǎng)站標(biāo)題:javascript越界,什么是越界
文章源于:http://chinadenli.net/article49/dsieeeh.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)、定制開發(fā)、定制網(wǎng)站、網(wǎng)站導(dǎo)航、網(wǎng)站設(shè)計(jì)公司、云服務(wù)器
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)