第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

js筆記二十四之函數(shù)的形參與實(shí)參

標(biāo)簽:
JavaScript

函数中的形参和实参

形参: 相当于生产洗衣机的时候提供的入口,需要用户执行函数的时候把需要的值传递进来,形参是个变量,用来存储和接受这些值
实参: 用户执行的时候传递给形参的具体值

// 随便求出两个数的和function sum(num1,num2){ // num1/num2 就是形参变量(类似于var了一下)
    var total = num1 + num2;
    total *= 10;
    total = total.toFixed(2);    console.log(total)
}// sum(1,2)    // -> 30.00sum(3,4)    // -> 70.00sum(23,41)  // -> 640.00sum(10)     // num1 = 10;num2 = undefined; undefined = NaN ; 10 + NaN = NaN;
// 随便求出两个数的和function sum(num1,num2){    // 如果有一个值没有传递的话,为了保证结果不是NaN,我们为其设置一个默认的值: 0;
    typeof num1 === "undefined"?num1 = 0: null; // -> num1 = num1 || 0;
    typeof num2 === "undefined"?num2 = 0: null; // -> num2 = num2 || 0;
    // 容错处理
    
    var total = num1 + num2;
    total *= 10;
    total = total.toFixed(2);    console.log(total)
}

arguments 实参集合

当我们不知道用户具体要传递几个值的时候(传递几个值都行),此时我们无法设置形参的个数,遇到此类需求,需要使用内置的实参集合: arguments

  1. arguments只有函数才有

  2. 不管执行函数的时候时候传递实参, arguments天生就存在,没有传递实参arguments是个空集合, 传递了arguments中包含了所有的实参值

  3. 不管是否设置了形参,arguments中始终存储了所有的实参信息.

function sum(){    console.log(arguments);
}
sum(1,2,3) // ->Arguments(3) [1, 2, 3, callee: ƒ, Symbol(Symbol.iterator): ƒ]

arguments是一个类数组集合

  1. 以数字作为索引(属性名), 从零开始
    arguments[0] 第一个实参
    arguments[1] 第二个实参
    ...

  2. 有一个length的属性,存储的是当前集合的长度(当前传递的实参个数)
    arguments.length
    arguments['length']

arguments.callee: 存储的是当前函数本身
arguments.callee.caller: 存储的是当前函数在哪执行的(宿主本身),在全局环境下执行的,结果是: null

"use strict" // 开启严格模式function sum(){    console.log(arguments.callee)    // Uncaught TypeError: 'caller', 'callee', and 'arguments' properties may not be accessed on strict mode functions or the arguments objects for calls to them}
sum()// arguments.callee或者arguments.callee.caller一般真正的项目中很少使用,因为在js严格模式下,或报错
function sum(){    var total = null;   
    for (var i = 0; i < arguments.length; i++) {        var cur = arguments[i]; // 每一轮循环获取当前传递的那个实参值
        // 为了防止字符串+数字是字符串拼接不是数学累加,我们最好把其他数据类型首先转换为number类型
        cur  = Number(cur);        if(isNaN(cur) === false){
            total += cur;
        }
    }    console.log(total);
}
sum(10,20);
sum();
sum(10,20,'30');
sum(10,20,'30','lelei');
function sum(){    var total = null;   
    for (var i = 0; i < arguments.length; i++) {        var cur = Number(arguments[i]);
        !isNaN(cur)?total += cur:null;
    }    console.log(total);
}
sum(10,20);
sum();
sum(10,20,'30');
sum(10,20,'30','lelei');



作者:uplyw
链接:https://www.jianshu.com/p/e138867f8428


點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺(jué)得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消