var colors=["red","blue","green"];
colors.length=2;
alert("colors[2]"); //undifined
陣列的length屬性不是唯讀的。如果將其length的值設為大於陣列項數的值,則新增的每一項都會取得undefined值。
可以方便的在陣列末尾新增新項,比如
colors[colors.length]="black";
colors[colors.length]="brown";
陣列最多可以包含4294967295個項,這是來自ffffffff團深深的,額,善意。
判斷是否是陣列:array.isarray(value)
anarray.join(",");
陣列也有push和pop方法,還有shift可以獲得第一項unshift推入到隊頭。
還有sort可以排序,reverse可以反序。
var colors=new array();
colors[0]=0;
colors[1]=1;
colors.unshift(3);
console.log(colors);
colors.sort();
console.log(colors);
colors.reverse();
console.log(colors);
sort() 方法可以接受乙個方法為引數 ,這個方法有兩個引數。分別代表每次排序比較時的兩個陣列項。
sort()排序時每次比較兩個陣列項都會執行這個引數,並把兩個比較的陣列項作為引數傳遞給這個函式。當函式返回值為1的時候就交換兩個陣列項的順序,否則就不交換。
concat方法先建立副本,再返回新陣列。
var colors=["red","green"];
var colors2=colors.concat("yellow",["black","brown"]);
console.log(colors);
console.log(colors2);
陣列還有slice方法,接受1到2個引數,乙個引數的話就返回當前值到末尾,兩個的話就返回兩個之間的值。不會影響原陣列的值。
var colors3=colors2.slice(1);
var colors4=colors2.slice(2,4);
console.log(colors3);
console.log(colors4);
console.log(colors2);
還有個splice方法感覺很厲害。刪除插入替換無所不能。
var colors5=colors2.splice(2,4);
//從2開始刪到4,返回2到4的值
console.log(colors5);
console.log(colors2);
var colors6=colors2.splice(2,0,"hello");
//從2開始刪0個,插入hello
console.log("zhelikaishikan");
console.log(colors6);
console.log(colors2);
//還可以用這個實現替換
var colors7=colors2.splice(1,1,"hello");
console.log(colors7);
console.log(colors2);
還有indexof和lastindexof兩個方法,乙個從開頭向後找,乙個從後面往前面找。返回位置。
陣列還有五個迭代方法
every()對陣列的每一項執行給定元素,如果所有的項都返回true,則返回true
filter()對陣列的每一項執行給定元素,返回會返回true的項構成的陣列。
foreach()對陣列的每一項執行給定元素,沒有返回值。
map()對陣列的每一項執行給定元素,返回函式呼叫的結果組成的陣列。
some()對陣列的每一項執行給定元素,如果任一項返回true,則返回true
以上方法都不會修改陣列所包含的值。
console.log("下面是迭代");
//下面是迭代
var num=[8,1,2,3,4,5,6,7,8,9];
var everyresult=num.every(function(item,index,array));
console.log(everyresult);
var someresult=num.some(function(item,index,array));
console.log(someresult);
var filterresult=num.filter(function(item,index,array));
console.log(filterresult);
var mapresult=num.map(function(item,index,array));
console.log(mapresult);
這個也是迭代:reduce和reduceright,迭代所有項,返回乙個最終的值。第乙個從前往後,第二個從後往前。
var sum=num.reduceright(function(prev,cur,index,array));
console.log(sum);
JavaScript高階程式設計
ecmascript有5種基本型別資料 另外還有一種複雜的資料型別 typeof就是用來檢測變數的資料型別的,typeof可能會返回以下值 typeof操作符在檢測引用型別的值時,總是會返回object,所以用處不大。instanceof用來檢測物件型別的,返回值是 true false。例如 pe...
JavaScript高階程式設計 this
在函式中this到底取何值,是在函式真正被呼叫執行的時候確定的,函式定義的時候確定不了 因為this的取值是執行上下文環境的一部分,每次呼叫函式,都會產生乙個新的執行上下文環境。所謂建構函式就是用來new物件的函式。其實嚴格來說,所有的函式都可以new乙個物件,但是有些函式的定義是為了new乙個物件...
javascript 高階程式設計 二
這裡我們直接進入主題 在js剛剛開始的時候,必須面臨乙個問題,那就是如何使的js的載入和執行不會影響web核心語言html的展示效果,和html和諧共存。在這個背景下 2 xhtml中的應用 在html中如果字串,那麼html就會認為js指令碼已經結束所以會產生乙個錯誤用一下 來替換 來替換aler...