夜光带你走进JavaScript(三十九)擅长的领域

夜光序言:

 

一句调侃,卸下不快;一声轻唤,驱走烦恼;一句懂得,温暖胸怀。

不求拥有,但求灵魂相通;不求永恒,但求片刻感动;不求怜惜,但求心语能懂。

 

 

 

 

 

 

 

 

 

 

 

正文:

JavaScript 函数参数


JavaScript 函数对参数的值没有进行任何的检查。


函数显式参数(Parameters)与隐式参数(Arguments)

在先前,我们已经学习了函数的显式参数:

functionName(parameter1, parameter2, parameter3) { // 要执行的代码…… }

函数显式参数在函数定义时列出。

函数隐式参数在函数调用时传递给函数真正的值。


参数规则

JavaScript 函数定义显式参数时没有指定数据类型。

JavaScript 函数对隐式参数没有进行类型检测。

JavaScript 函数对隐式参数的个数没有进行检测。


默认参数

ES5 中如果函数在调用时未提供隐式参数,参数会默认设置为: undefined

有时这是可以接受的,但是建议最好为参数设置一个默认值:


 

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>夜光</title>
</head>
<body>

<p>设置参数的默认值。</p>
<p id="demo"></p>
<script>
    function myFunction(x, y) {
        if (y === undefined) {
            y = 0;
        }
        return x * y;
    }
    document.getElementById("demo").innerHTML = myFunction(4);
</script>

</body>
</html>

 

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>夜光</title>
</head>
<body>

<p>设置函数参数默认值。</p>
<p id="demo"></p>
<script>
    function myFunction(x, y) {
        y = y || 0;
        return x * y;
    }
    document.getElementById("demo").innerHTML = myFunction(4);
</script>

</body>
</html>

 

嗯唔:ES6 函数可以自带参数

ES6 支持函数带有默认参数,就判断 undefined 和 || 的操作:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>夜光</title>
</head>
<body>

<p>设置参数的默认值</p>
<p id="demo1"></p>
<p id="demo2"></p>
<script>
    function myFunction(x, y = 10) {
        // 夜光:如果不传入参数 y ,则其默认值为 10
        return x + y;
    }
    // 输出 2
    document.getElementById("demo1").innerHTML = myFunction(0, 2) ;
    // 输出 15, y 参数的默认值
    document.getElementById("demo2").innerHTML = myFunction(5);
</script>

</body>
</html>

嗯唔:arguments 对象

JavaScript 函数有个内置的对象 arguments 对象。

argument 对象包含了函数调用的参数数组。

通过这种方式你可以很方便的找到最大的一个参数的值:

 

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>夜光</title>
</head>
<body>

<p>查找最大的数。</p>
<p id="demo"></p>
<script>
    x = findMax(1, 123, 500, 115, 44, 88);

    function findMax() {
        var i, max = arguments[0];

        if(arguments.length < 2) return max;

        for (i = 0; i < arguments.length; i++) {
            if (arguments[i] > max) {
                max = arguments[i];
            }
        }
        return max;
    }
    document.getElementById("demo").innerHTML = x;
</script>

</body>
</html>

或者创建一个函数用来统计所有数值的和:

 

 

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>夜光</title>
</head>
<body>

<p>计算所有参数之和:</p>
<p id="demo"></p>
<script>
    function sumAll() {
        var i, sum = 0;
        for(i = 0; i < arguments.length; i++) {
            sum += arguments[i];
        }
        return sum;
    }
    document.getElementById("demo").innerHTML =
        sumAll(1, 123, 111, 115, 44, 88);
</script>

</body>
</html>

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值