Javascript高階程式設計(第三版) 陣列

2021-07-02 22:26:12 字數 2831 閱讀 3645

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...