數(shù)組數(shù)組的概念:將多個(gè)元素(通常是同一類型)按照一定順序排列放到一個(gè)集合中,這個(gè)集合稱之為數(shù)組---簡(一組有序的數(shù)據(jù)) 數(shù)組的作用:可以一次性存儲多個(gè)數(shù)據(jù)數(shù)組的定義:1.通過構(gòu)造函數(shù)創(chuàng)建數(shù)組語法: var 數(shù)組名=new Array(); var array=new Array();//定義了一個(gè)數(shù)組 var arr1=new Array();//構(gòu)造函數(shù)的方式---空數(shù)組
var arr2=new Array(5);//構(gòu)造函數(shù)的方式定義了一個(gè)數(shù)組,數(shù)組中有5個(gè)元素,數(shù)組長度是5,每個(gè)數(shù)據(jù)是undefined
var arr3=new Array(10,20,1000,40,50,60);構(gòu)造函數(shù)的方式定義了一個(gè)數(shù)組,并且有多個(gè)數(shù)據(jù)(這里是6個(gè)數(shù)組)
總結(jié)點(diǎn):當(dāng)括號中是一個(gè)數(shù)時(shí),代表數(shù)組的長度;當(dāng)括號多個(gè)值時(shí),代表的是每個(gè)具體的數(shù)據(jù)值;
數(shù)組的名字如果直接輸出,那么直接就可以把數(shù)組中的數(shù)據(jù)顯示出來,如果沒有數(shù)據(jù)就看不到數(shù)據(jù); 2.通過字面量的方式創(chuàng)建數(shù)組語法: var 數(shù)組名=[];//空數(shù)組 var array=[]; 無論是構(gòu)造函數(shù)的方式還是字面量的方式,定義的數(shù)組,如果有長度,那么默認(rèn)是undefined
數(shù)組的長度:就是數(shù)組中的元素個(gè)數(shù)--可以通過length來獲取數(shù)組的長度 // 創(chuàng)建一個(gè)空數(shù)組 var arr1 = []; // 創(chuàng)建一個(gè)包含3個(gè)數(shù)值的數(shù)組,多個(gè)數(shù)組項(xiàng)以逗號隔開 var arr2 = [1, 3, 4]; // 創(chuàng)建一個(gè)包含2個(gè)字符串的數(shù)組 var arr3 = ['a', 'c']; // 可以通過數(shù)組的length屬性獲取數(shù)組的長度 console.log(arr3.length); // 可以設(shè)置length屬性改變數(shù)組中元素的個(gè)數(shù) arr3.length = 0; 數(shù)組的索引(下標(biāo)):從0開始,到數(shù)組的長度減1結(jié)束 可以通過索引來獲取/設(shè)置/增加數(shù)組元素 // 格式:數(shù)組名[下標(biāo)] 下標(biāo)又稱索引 // 功能:獲取數(shù)組對應(yīng)下標(biāo)的那個(gè)值,如果下標(biāo)不存在,則返回undefined。 var arr = ['red',, 'green', 'blue']; arr[0]; // red arr[2]; // blue arr[3]; // 這個(gè)數(shù)組的最大下標(biāo)為2,因此返回undefined // 格式:數(shù)組名[下標(biāo)/索引] = 值; 通過下標(biāo)設(shè)置數(shù)組的元素值: 數(shù)組名[索引]=值
通過下標(biāo)訪問數(shù)組的元素值: 數(shù)組名[索引]
數(shù)組中元素的值的類型可以不一樣
數(shù)組的長度是可以被改變的
數(shù)組遍歷遍歷:遍及所有,對數(shù)組的每一個(gè)元素都訪問一次叫遍歷 數(shù)組遍歷的基本語法: for(var i=0;i<arr.length;i++){ //數(shù)組遍歷的固定模式 }
函數(shù)把一段相對獨(dú)立的具有特定功能的代碼塊封裝起來,形成一個(gè)獨(dú)立實(shí)體,就是函數(shù),起個(gè)名字(函數(shù)名),在后續(xù)開發(fā)中可以反復(fù)調(diào)用 函數(shù)的作用:代碼的重復(fù)使用 函數(shù)的定義1.函數(shù)聲明function 函數(shù)名(){ // 函數(shù)體 } 2.函數(shù)表達(dá)式var fn = function() { // 函數(shù)體 } 函數(shù)的調(diào)用:函數(shù)名();
// 聲明函數(shù) function sayHi() { console.log("吃了沒?"); } // 調(diào)用函數(shù) sayHi(); 函數(shù)參數(shù):在函數(shù)定義的時(shí)候,函數(shù)名字后面的小括號里的變量就是參數(shù),目的是函數(shù)在調(diào)用的時(shí)候,用戶傳進(jìn)來的值操作,此時(shí)函數(shù)定義的時(shí)候后面的小括號里的變量就叫參數(shù);寫倆個(gè)變量就有倆個(gè)參數(shù)(寫多少代表有多少個(gè)); 在函數(shù)調(diào)用的時(shí)候,按照提示的方法,給變量賦值---就叫傳值,把這個(gè)值傳到變量(參數(shù)中); 函數(shù)內(nèi)部是一個(gè)封閉的環(huán)境,可以通過參數(shù)的方式,把外部的值傳遞給函數(shù)內(nèi)部 帶參數(shù)的函數(shù)聲明 function 函數(shù)名(形參1, 形參2, 形參...){ // 函數(shù)體 } 帶參數(shù)的函數(shù)調(diào)用 函數(shù)名(實(shí)參1, 實(shí)參2, 實(shí)參3); 形參:在聲明函數(shù)的時(shí)候,為了函數(shù)的功能更加靈活,有些值固定不了,對于這些固定不了的值,我們可以給函數(shù)設(shè)置參數(shù),這個(gè)參數(shù)沒有具體的值,僅僅起到一個(gè)占位置的作用 實(shí)參:如果函數(shù)在聲明時(shí),設(shè)置了形參,那么在函數(shù)調(diào)用時(shí)就需要傳入對應(yīng)的參數(shù)(實(shí)參可以是變量也可以是值) 函數(shù)的返回值當(dāng)函數(shù)執(zhí)行完的時(shí)候,并不是所有時(shí)候都需要把結(jié)果打印出來;我們需要函數(shù)給我們一些反饋(比如計(jì)算的結(jié)果返回進(jìn)行后續(xù)的運(yùn)算),這個(gè)時(shí)候可以讓函數(shù)返回一些東西,也就是返回值。函數(shù)通過return返回一個(gè)返回值。 在函數(shù)內(nèi)部有return關(guān)鍵字,并且在關(guān)鍵字后面有內(nèi)容,這個(gè)內(nèi)容被返回了
當(dāng)函數(shù)調(diào)用之后,需要這個(gè)返回值,那么就定義變量接收,即可
返回值語法:
//聲明一個(gè)帶返回值的函數(shù) function 函數(shù)名(形參1, 形參2, 形參...){ //函數(shù)體 return 返回值; } //可以通過變量來接收這個(gè)返回值 var 變量 = 函數(shù)名(實(shí)參1, 實(shí)參2, 實(shí)參3); 返回值詳細(xì)解析: 如果函數(shù)沒有顯示的使用 return語句 ,那么函數(shù)有默認(rèn)的返回值:undefined 如果函數(shù)使用 return語句,那么跟再return后面的值,就成了函數(shù)的返回值 如果函數(shù)使用 return語句,但是return后面沒有任何值,那么函數(shù)的返回值也是:undefined 函數(shù)使用return語句后,這個(gè)函數(shù)會在執(zhí)行完 return 語句之后停止并立即退出,也就是說return后面的所有其他代碼都不會再執(zhí)行。 arguments的使用JavaScript中,arguments對象是比較特別的一個(gè)對象,實(shí)際上是當(dāng)前函數(shù)的一個(gè)內(nèi)置屬性。也就是說所有函數(shù)都內(nèi)置了一個(gè)arguments對象,arguments對象中存儲了傳遞的所有的實(shí)參。arguments是一個(gè)偽數(shù)組,因此及可以進(jìn)行遍歷 ---定義函數(shù)的時(shí)候,不知道是否傳入了參數(shù)的,沒有確定形參的個(gè)數(shù),在用戶調(diào)用函數(shù)之后傳入的實(shí)參儲存在arguments對象中,函數(shù)中通過arguments對象我們可以進(jìn)行操作 定義: function f1() { //獲取的是函數(shù)在調(diào)用的時(shí)候,傳入了幾個(gè)參數(shù) //console.log(arguments.length); //使用arguments對象可以獲取傳入的每個(gè)參數(shù)的值 console.log(arguments); } 實(shí)例: function f1() { //arguments----->數(shù)組使用------偽數(shù)組--- var sum=0; for(var i=0;i<arguments.length;i++){ sum+=arguments[i]; } return sum; } console.log(f1(10,20,30)); 函數(shù)其他匿名函數(shù):沒有名字的函數(shù)命名函數(shù):有名字的函數(shù)函數(shù)表達(dá)式: var 變量=匿名函數(shù) var f1=function (){ }; f1();
函數(shù)表達(dá)式后面,賦值結(jié)束后,要加分號
函數(shù)定義--函數(shù)聲明
function 函數(shù)名(){
函數(shù)體
}
自調(diào)用函數(shù)(沒有名字)匿名函數(shù)不能通過直接調(diào)用來執(zhí)行,因此可以通過匿名函數(shù)的自調(diào)用方式來執(zhí)行(聲明的同時(shí)直接調(diào)用); (function () { alert(123); })(); 函數(shù)是一種數(shù)據(jù)類型function fn() {} console.log(typeof fn); 函數(shù)作為參數(shù)使用函數(shù)可以作為參數(shù)使用,如果一個(gè)函數(shù)作為參數(shù),那么我們說這個(gè)參數(shù)(函數(shù))可以叫回調(diào)函數(shù) 只要是看到一個(gè)函數(shù)作為參數(shù)使用了,那就是回調(diào)函數(shù) 函數(shù)作為返回值使用因?yàn)楹瘮?shù)是一種類型,所以可以把函數(shù)可以作為返回值從函數(shù)內(nèi)部返回,這種用法很常見。 function fn(b) { var a = 10; return function () { alert(a+b); } } fn(15)();
|
|