將多個元素(一般是同一類型)按照必定順序排列放到一個集合中,這個集合稱之爲數組---簡(一組有序的數據)數組
語法:函數
var 數組名=new Array(); var array=new Array();//定義了一個數組
數組的名字若是直接輸出,那麼直接就能夠把數組中的數據顯示出來,若是沒有數據就看不到數據;spa
語法:code
var 數組名=[];//空數組 var array=[];
var 數組名=[值1,值2,值3];
數組的長度:就是數組中的元素個數--能夠經過length來獲取數組的長度對象
// 建立一個空數組 var arr1 = []; // 建立一個包含3個數值的數組,多個數組項以逗號隔開 var arr2 = [1, 3, 4]; // 建立一個包含2個字符串的數組 var arr3 = ['a', 'c']; // 能夠經過數組的length屬性獲取數組的長度 console.log(arr3.length); // 能夠設置length屬性改變數組中元素的個數 arr3.length = 0;
數組的索引(下標):從0開始,到數組的長度減1結束blog
能夠經過索引來獲取/設置/增長數組元素索引
// 格式:數組名[下標] 下標又稱索引 // 功能:獲取數組對應下標的那個值,若是下標不存在,則返回undefined。 var arr = ['red',, 'green', 'blue']; arr[0]; // red arr[2]; // blue arr[3]; // 這個數組的最大下標爲2,所以返回undefined
// 格式:數組名[下標/索引] = 值;
// 若是下標有對應的值,會把原來的值覆蓋,若是下標不存在,會給數組新增一個元素。
var arr = ["red", "green", "blue"];
// 把red替換成了yellow
arr[0] = "yellow";
// 給數組新增長了一個pink的值
arr[3] = "pink";ip
遍歷:遍佈全部,對數組的每個元素都訪問一次叫遍歷開發
數組遍歷的基本語法:字符串
for(var i=0;i<arr.length;i++){ //數組遍歷的固定模式 }
把一段相對獨立的具備特定功能的代碼塊封裝起來,造成一個獨立實體,就是函數,起個名字(函數名),在後續開發中能夠反覆調用
函數的做用:代碼的重複使用
function 函數名(){ // 函數體 }
函數聲明的時候,函數體並不會執行,只要當函數被調用的時候纔會執行
var fn = function() { // 函數體 }
函數名();
// 聲明函數 function sayHi() { console.log("吃了沒?"); } // 調用函數 sayHi();
在函數定義的時候,函數名字後面的小括號裏的變量就是參數,目的是函數在調用的時候,用戶傳進來的值操做,此時函數定義的時候後面的小括號裏的變量就叫參數;寫倆個變量就有倆個參數(寫多少表明有多少個);
在函數調用的時候,按照提示的方法,給變量賦值---就叫傳值,把這個值傳到變量(參數中);
函數內部是一個封閉的環境,能夠經過參數的方式,把外部的值傳遞給函數內部 帶參數的函數聲明 function 函數名(形參1, 形參2, 形參...){ // 函數體 } 帶參數的函數調用 函數名(實參1, 實參2, 實參3);
形參:在聲明函數的時候,爲了函數的功能更加靈活,有些值固定不了,對於這些固定不了的值,咱們能夠給函數設置參數,這個參數沒有具體的值,僅僅起到一個佔位置的做用
實參:若是函數在聲明時,設置了形參,那麼在函數調用時就須要傳入對應的參數(實參能夠是變量也能夠是值)
當函數執行完的時候,並非全部時候都須要把結果打印出來;咱們須要函數給咱們一些反饋(好比計算的結果返回進行後續的運算),這個時候可讓函數返回一些東西,也就是返回值。函數經過return返回一個返回值。
//聲明一個帶返回值的函數 function 函數名(形參1, 形參2, 形參...){ //函數體 return 返回值; } //能夠經過變量來接收這個返回值 var 變量 = 函數名(實參1, 實參2, 實參3);
函數的調用結果就是返回值,所以咱們能夠對函數調用結果進行操做。
返回值詳細解析:
若是函數沒有顯示的使用 return語句 ,那麼函數有默認的返回值:undefined
若是函數使用 return語句,那麼跟再return後面的值,就成了函數的返回值
若是函數使用 return語句,可是return後面沒有任何值,那麼函數的返回值也是:undefined
函數使用return語句後,這個函數會在執行完 return 語句以後中止並當即退出,也就是說return後面的全部其餘代碼都不會再執行。
JavaScript中,arguments對象是比較特別的一個對象,其實是當前函數的一個內置屬性。也就是說全部函數都內置了一個arguments對象,arguments對象中存儲了傳遞的全部的實參。arguments是一個僞數組,所以及能夠進行遍歷
---定義函數的時候,不知道是否傳入了參數的,沒有肯定形參的個數,在用戶調用函數以後傳入的實參儲存在arguments對象中,函數中經過arguments對象咱們能夠進行操做
定義:
function f1() { //獲取的是函數在調用的時候,傳入了幾個參數 //console.log(arguments.length); //使用arguments對象能夠獲取傳入的每一個參數的值 console.log(arguments); }
實例:
function f1() { //arguments----->數組使用------僞數組--- var sum=0; for(var i=0;i<arguments.length;i++){ sum+=arguments[i]; } return sum; } console.log(f1(10,20,30));
函數表達式: var 變量=匿名函數 var f1=function (){ };
若是是函數表達式,那麼此時前面的變量中存儲的就是一個函數,而這個變量就至關因而一個函數,就能夠直接加小括號調用了
匿名函數不能經過直接調用來執行,所以能夠經過匿名函數的自調用方式來執行(聲明的同時直接調用);
(function () { alert(123); })();
function fn() {} console.log(typeof fn);
經過typeof 獲取函數的類型:function;
函數能夠做爲參數使用,若是一個函數做爲參數,那麼咱們說這個參數(函數)能夠叫回調函數
只要是看到一個函數做爲參數使用了,那就是回調函數
由於函數是一種類型,因此能夠把函數能夠做爲返回值從函數內部返回,這種用法很常見。
function fn(b) { var a = 10; return function () { alert(a+b); } } fn(15)();