? ? 函數(shù):是由事件驅(qū)動的或者當它被調(diào)用時執(zhí)行的可重復使用的代碼塊。
? ?創(chuàng)建函數(shù)的三種方法:
? ? ? ? ?1.使用function關(guān)鍵字申明命名函數(shù)
? ? ? ? ?2.使用function關(guān)鍵字申明匿名函數(shù)
? ? ? ? ?3.使用function對象構(gòu)造方法創(chuàng)建函數(shù)
?實例: ? function myFunction()
? ? ? ? ? ? {
? ? ? ? ? ? alert("Hello World!");
? ? ? ? ? ? ? }
構(gòu)造函數(shù):構(gòu)造函數(shù)? 構(gòu)建創(chuàng)造對象時調(diào)用的函數(shù)? 并只能調(diào)用一次? 作用是給對象做初始化使用與普通函數(shù)的區(qū)別 能調(diào)用多次(通常來說待牵,構(gòu)造函數(shù)沒有返回值干奢,它們只是初始化由this指針傳遞進來的對象肋乍,并且什么也不返回。如果一個函數(shù)有返回值谷婆,被返回的對象就成了new表達式的值台夺。從形式上看径玖,一個函數(shù)被作為構(gòu)造函數(shù)還是普通函數(shù)執(zhí)行的唯一區(qū)別,是否用new運算符颤介。)梳星。
遞歸函數(shù):遞歸函數(shù):在函數(shù)內(nèi)部自己調(diào)用自己的函數(shù)(遞歸能做循環(huán)能做的所有事情循環(huán)做不了的 遞歸也能做,一個標準的遞歸函數(shù)? 必須有參數(shù)? 有返回值).
實例:遞歸寫 1+2+3+....+100;
? ? 方法: 1.找臨界值:無可計算,即可得出的值
? ? ? ? ? ? ? 2.這一次和上一次運算的關(guān)系? +n;
? ? ? ? ? ? ?3.假設當前函數(shù)可以運行,根據(jù)上一次調(diào)用自身運算的結(jié)果,寫出這次的運算結(jié)果
? ? ? ? ? ? ? ?addSum()? addSum(49) 1+2+..+50=addSum(49)+50
? ? ? ? ? ? ->推斷出 第n次運算與第n-1次運算的關(guān)系 addSum(n)=addSum(n-1)+n;
? ? ? ? ? ? ? function addsum(n){
? ? ? ? ? ? ? ? ? if(n==1){
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? return 1
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? ? ? ?return addsum(n-1)+n
? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? ? ? ?console.log(addsum(100))
? 回調(diào)函數(shù):回調(diào)就是一個函數(shù)的調(diào)用過程。
? ? ? ?回調(diào)函數(shù):? $.ajax({
? ? ? ? ? ? ? ? ? ?type:"get",
? ? ? ? ? ? ? ? ? ? url:"",
? ? ? ? ? ?//回調(diào)函數(shù)
? ? ? ? ? ? success:function(){
? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? error:function(){
? ? ? ? ? }
? ? ? ? ? });
回調(diào)的規(guī)則:?創(chuàng)建的是Function對象 Function對象包含一個字符串 字符串包含了函數(shù)的js代碼
匿名函數(shù):定義時未直接指定名稱的函數(shù)(定義匿名函數(shù)后立即調(diào)用? 自運行函數(shù))滚朵。
自定義函數(shù)
? ? function 函數(shù)名(參數(shù)列表)
? ? ?函數(shù)體:
? ? ? ? ?return 返回值:
? ? ? ? ? ? ? 1.明確函數(shù)的功能:函數(shù)有沒有具體返回值
? ? ? ? ? ? ? 2.明確實現(xiàn)共能時參與運算的具體實際數(shù)據(jù):明確函數(shù)的參數(shù)列表-形參 實參
? ? ? 實例: ? function add(a,b){ ? ? ? ? ? //a b是形參-形式上參與運算的數(shù)? 可以是變量? 數(shù)組? 對象
? ? ? ? ? ? ? ? ? ? ? returen a+b;
? ? ? ? ? ? ? ? ? ? ? ?}
? ? ? ? ? ?console.log(add(2,4)); ? ? ? //函數(shù)的調(diào)用
? ?嵌套函數(shù):
? ? ? ? ? ? ? ? ? ? ? ?1.函數(shù)嵌套定義只能出現(xiàn)在函數(shù)冤灾,不能出現(xiàn)在選擇語句或循環(huán)語句中;
? ? ? ? ? ? ? ? ? ? ? ?2.嵌套定義的函數(shù)只能在嵌套的函數(shù)中使用辕近;
? ? 實例:functionmyWrite(str)
? ? ? ? ? ? ?{
? ? ? ? ? ? ? document.write(str+"
? ? ? ? ? ? ");
? ? ? ? ? ? }
? ? ? ? ? ? functionmyFun()
? ? ? ? ? ? {
? ? ? ? ? ? ? functionmySum(x,y)
? ? ? ? ? {
? ? ? ? ? ? ? varz=x+y;
? ? ? ? ? ? ? returnz;
? ? ? ? ? ? ? }
? ? ? ? varb=mySum(1,6);
? ? ? ? ? ? myWrite(b);
? ? ? ? ? ? }
? ? ? ? ? ?myFun();
//如上 mySum函數(shù)只能在myFun函數(shù)調(diào)用韵吨;不能再其他函數(shù)中調(diào)用,如myWrite函數(shù)亏推;也不能再myFun函數(shù)的其他頂層全局代碼中調(diào)用.