重點--arguments的使用

\color{rgba(254, 67, 101, .8)}{arguments的使用}

當我們不確定有多少個參數(shù)傳遞時迫像,可以用arguments來獲取,在JS中瞳遍,arguments實際上是當前函數(shù)的一個內(nèi)置對象闻妓,所有函數(shù)都內(nèi)置了一個arguments對象,arguments對象中存儲了傳遞的所有實參

    <script>
        //arguments的使用
        function fn() {
            console.log(arguments);
        }
        fn(1, 2, 3);
    </script>
image.png

\color{rgba(254, 67, 101, .8)}{可以看到用arguments存儲了當前函數(shù)接收到的實參}
\color{rgba(254, 67, 101, .8)}{arguments的值類似數(shù)組掠械,但不是數(shù)組由缆,它具有以下特點}

1.具有數(shù)組的length屬性,arguments.length可以獲取到arguments的長度(也就是形參的個數(shù))
2.按照 鍵 / 值 對的方式進行存儲
3.他沒有數(shù)組的一些方法如:pop();push();等

\color{rgba(254, 67, 101, .8)}{但是可以把它轉(zhuǎn)化為數(shù)組猾蒂,并且arguments是可以進行遍歷的}
\color{rgba(254, 67, 101, .8)}{arguments的值就是實參均唉,可以用arguments[i]取到實參的值}
\color{rgba(254, 67, 101, .8)}{案例:利用函數(shù)求任意個數(shù)的形參的最大值}

    <script>
        //案例:利用函數(shù)求任意個數(shù)的形參的最大值
        function getMax() {
            var max = arguments[0];
            for (var i = 1; i < arguments.length; i++) {
                if (arguments[i] > max) {
                    max = arguments[i];
                }

            }
            return max;
        }
        var re = getMax(1, 2, 3, 4, 5);
        alert(re);
    </script>
image.png

\color{rgba(254, 67, 101, .8)}{案例:利用函數(shù),翻轉(zhuǎn)任意一個數(shù)組}

        function reverse(arr) {
            var newArr = [];
            for (i = arr.length - 1; i >= 0; i--) {
                newArr[newArr.length] = arr[i];
            }
            return newArr;
        }
        var arr1 = reverse([1, 2, 3]);
        console.log(arr1);
image.png

\color{rgba(254, 67, 101, .8)}{函數(shù):利用函數(shù)封裝方式舔箭,對數(shù)組排序--冒泡排序}

    <script>
        //用函數(shù)對數(shù)組進行冒泡排序
        function sort(arr) {
            for (var i = 0; i < arr.length; i++) {
                for (var j = 0; j < arr.length; j++) {
                    if (arr[j] > arr[j + 1]) {
                        var temp = arr[j];
                        arr[j] = arr[j + 1];
                        arr[j + 1] = temp;
                    }
                }
            }
            return arr;
        }
        var arr1 = sort([1, 4, 2, 9]);
        console.log(arr1);
    </script>
image.png

\color{rgba(254, 67, 101, .8)}{案例:判斷閏年}

輸入一個閏年限嫌,判斷是閏年還是平年(閏年:能被4整除且不能被100整除靴庆,或者能被400整除)

        <script>
        //輸入一個閏年炉抒,判斷是閏年還是平年(閏年:能被4整除且不能被100整除,或者能被400整除)
        function isRunYear(year) {
            //如果是閏年返回true稚叹,否則返回false
            var flag = false;
            if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
                flag = true;
            }
            return flag;
        }
        console.log(isRunYear(2000));
    </script>
image.png

\color{rgba(254, 67, 101, .8)}{函數(shù)可以調(diào)用另外一個函數(shù)}

執(zhí)行順序:
1.先執(zhí)行到fn1函數(shù)扒袖,因為沒有調(diào)用塞茅,所以繼續(xù)往下執(zhí)行
2.執(zhí)行到fn2,還是沒有調(diào)用季率,繼續(xù)往下執(zhí)行
3.再往下執(zhí)行到調(diào)用fn1野瘦,就回到fn1函數(shù)體,執(zhí)行函數(shù)
4.執(zhí)行的結(jié)果是11飒泻,然后繼續(xù)執(zhí)行到下一步調(diào)用了fn2
5.返回fn2鞭光,執(zhí)行fn2的函數(shù)體
6.fn2的函數(shù)體執(zhí)行輸出22和字符串fn2
7.fn2執(zhí)行完畢后,回道fn1繼續(xù)執(zhí)行接下來的代碼
8.執(zhí)行fn1的最后一行代碼泞遗,輸出fn1字符串

        //函數(shù)可以互相調(diào)用
        function fn1() {
            console.log(11);
            fn2();
            console.log('fn1');
        }

        function fn2() {
            console.log(22);
            console.log('fn2');
        }
        fn1();
image.png

\color{rgba(254, 67, 101, .8)}{函數(shù)案例:用戶輸入年份惰许,輸出當年份2月份的天數(shù)}

分析:閏年是29天,平年是28天
就是在上面判斷閏年的例子上變一下就行

    <script>
        //判斷是否為閏年
        function isRunYear(year) {
            //如果是閏年返回true史辙,否則返回false
            var flag = false;
            if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
                flag = true;
            }
            return flag;
        }

        //用戶輸入年份汹买,輸出當年2月份的天數(shù)
        //就是調(diào)用一下上面判斷閏年函數(shù)而已
        function backDay() {
            var year = prompt('請你輸入年份:');
            //判斷是否為閏年,就直接調(diào)用上面的判斷是否閏年的函數(shù)
            //if 的這個year不是上面那個函數(shù)的形參聊倔,而是本函數(shù)的用戶輸入數(shù)字晦毙,然后這個數(shù)字變成上面閏年函數(shù)的形參
            if (isRunYear(year)) {
                alert(year + '年是閏年2月份有29天');
            } else {
                alert(year + '年份是平年2月份有28天');
            }
        }
        backDay();
    </script>
image.png

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script type="text/javascript">
            
            function fun(){
                alert("函數(shù)要執(zhí)行了~~~~");
                
                for(var i=0 ; i<5 ; i++){
                    
                    
                    if(i == 2){
                        //使用break可以退出當前的循環(huán),只是退出循環(huán),其他的代碼還是會執(zhí)行,比如下面的alert());
                        //break;
                        
                        //continue用于跳過當次循環(huán)
                        //continue;
                        
                        //使用return可以結(jié)束整個函數(shù),return后面的代碼完全不執(zhí)行,不只是循環(huán),就連后面的alert();都不執(zhí)行
                        //return;
                    }
                    
                    console.log(i);
                }
                
                alert("函數(shù)執(zhí)行完了~~~~");
            }
            
            //fun();
            
            
            //-----------------------------------------------------
            
            /*
             * 返回值可以是任意的數(shù)據(jù)類型
             *  也可以是一個對象,也可以是一個函數(shù)
             */
            
            
            //返回一個對象
            function fun2(){
                
                
                return {name:"沙和尚"};
            }
            
            var a = fun2();
            
            console.log("a = "+a);
            
            
            //-----------------------------------------------------------------
            
            
            //返回一個函數(shù)
            //可以在函數(shù)內(nèi)部再聲明函數(shù),寫多少層都可以
            function fun3(){
                //在函數(shù)內(nèi)部再聲明一個函數(shù)
                function fun4(){
                    alert("我是fun4");
                }
                
                //將fun4函數(shù)對象作為返回值返回
                return fun4;
            }
            
            //fun3();這里調(diào)fun3();就等于調(diào)fun4();結(jié)果就是  我是fun4
            a = fun3();
            //a();這也是調(diào)用fun3();,結(jié)果是  我是fun4
            
            
            //console.log(a);
            
            fun3()();//相當于獲取返回值然后再執(zhí)行,結(jié)果也是  我是fun4,前面的fun3()相當于接收到fun4()的值,后一個括號相當于再執(zhí)行一次這個值
            
            
        </script>
    </head>
    <body>
    </body>
</html>

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末方库,一起剝皮案震驚了整個濱河市结序,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌纵潦,老刑警劉巖徐鹤,帶你破解...
    沈念sama閱讀 222,807評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異邀层,居然都是意外死亡返敬,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,284評論 3 399
  • 文/潘曉璐 我一進店門寥院,熙熙樓的掌柜王于貴愁眉苦臉地迎上來劲赠,“玉大人,你說我怎么就攤上這事×菖欤” “怎么了霹肝?”我有些...
    開封第一講書人閱讀 169,589評論 0 363
  • 文/不壞的土叔 我叫張陵,是天一觀的道長塑煎。 經(jīng)常有香客問我沫换,道長,這世上最難降的妖魔是什么最铁? 我笑而不...
    開封第一講書人閱讀 60,188評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮漱挎,結(jié)果婚禮上雀哨,老公的妹妹穿的比我還像新娘。我一直安慰自己怜庸,他們只是感情好,可當我...
    茶點故事閱讀 69,185評論 6 398
  • 文/花漫 我一把揭開白布骏令。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上奠支,一...
    開封第一講書人閱讀 52,785評論 1 314
  • 那天倍谜,我揣著相機與錄音尔崔,去河邊找鬼。 笑死季春,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的耘拇。 我是一名探鬼主播,決...
    沈念sama閱讀 41,220評論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼挣棕!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起洛心,我...
    開封第一講書人閱讀 40,167評論 0 277
  • 序言:老撾萬榮一對情侶失蹤厅目,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后损敷,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體深啤,經(jīng)...
    沈念sama閱讀 46,698評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡诱桂,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,767評論 3 343
  • 正文 我和宋清朗相戀三年呈昔,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片肝劲。...
    茶點故事閱讀 40,912評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡辞槐,死狀恐怖剩蟀,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情丙号,我是刑警寧澤,帶...
    沈念sama閱讀 36,572評論 5 351
  • 正文 年R本政府宣布喳魏,位于F島的核電站刺彩,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏创倔。R本人自食惡果不足惜畦攘,卻給世界環(huán)境...
    茶點故事閱讀 42,254評論 3 336
  • 文/蒙蒙 一知押、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧台盯,春花似錦静盅、人聲如沸寝殴。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,746評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至泌射,卻和暖如春熔酷,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背拒秘。 一陣腳步聲響...
    開封第一講書人閱讀 33,859評論 1 274
  • 我被黑心中介騙來泰國打工躺酒, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人羹应。 一個月前我還...
    沈念sama閱讀 49,359評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像雳刺,于是被迫代替她去往敵國和親掖桦。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,922評論 2 361

推薦閱讀更多精彩內(nèi)容