JS的运算符和对传参的影响

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    
</body>
</html>
<script>
//JS运算符++i 与 i++; i++是先计算后改变自身的值,++i恰好相反,先改变自身,再参与式子运算
    var i = 1;
    var sum = i++ + ++i + i++ + i++ + ++i;
    //计算i:  2      3     4     5     6
    //式子sum  1   +  3  +  3  +  4 +   6 
    console.log(i + " " + sum); //根据以上分析,打印出来是6 17;
    //注:i++与++i;还有i--与--i;情况类似;
//搞清楚加减以后,我们结合*(乘法), %(取余), /(除法)再来讨论
    var i = 1;
    var sum = i + i++ * ++i - 300 / i++;
    //计算i:  1   2     3           4
    //式子sum:1 + 1  *  3   - 300 / 3 
    console.log(i + " " + sum);  // 根据以上分析,打印出来是4 -96;也说明计算机遵循先乘除,后加减的规则;
    var i = 1;
    var sum = i + 5 % ++i + i++ * ++i;
    //计算i:  1       2     3      4
    //式子sum:1 + 5 % 2  +  2  *  4 
    console.log(i + " " + sum);  // 根据以上分析,打印出来是4 10;也说明计算机遵循先乘除模(模,即:取余),后加减的规则;





    
//接下来我们看看i++与++i在传参时的执行情况
    function test(a){
        console.log(a);
    };
    var a = 1 ; 
    test(a++);       //打印的结果是1;说明a++作为一个实参是先传递,再进行自身加1;
    function test(a){
        console.log(a);
    };
    var a = 1 ; 
    test(++a);       //打印的结果是2;说明++a作为一个实参是先进行自身加1,再传递;雷同test(a+1);
    function test(a){
        console.log(++a);
    };
    var a = 1 ; 
    test(++a);       //打印的结果是3;说明++a作为一个实参是先进行自身加1,再传递;再函数执行时也是先继续进行自身加1,再打印出来;
    function test(a){
        console.log(a++);
    };
    var a = 1 ; 
    test(++a);       //打印的结果是3;说明++a作为一个实参是先进行自身加1,再传递;再函数执行时先打印出结果,再进行自身加1;
//最后总结一波运算符和传参的糅合情况,让我们更加了解js的执行逻辑
        function test(a){
            console.log(a++ + ++a - a-- / a++ % a++ + ++a);
        }
        var a = 1;
        test(a++);   //打印结果是7.5,简单分析,传入的参数是1;然后进行最后的计算即可;

</script>

 

转载于:https://www.cnblogs.com/XieYFwin/p/10852696.html

扩展运算符(Spread Operator)是ES6中的一个新特性,它可以将一个可迭代的对象(如数组、字符串、Set等)展开成多个元素,或者将多个元素合并成一个数组。 以下是扩展运算符的用法: 1. 展开成多个元素 可以使用扩展运算符将一个数组展开成多个元素: ```javascript const arr = [1, 2, 3]; console.log(...arr); // 1 2 3 ``` 可以使用扩展运算符将一个字符串展开成多个字符: ```javascript const str = "hello"; console.log(...str); // h e l l o ``` 2. 合并成一个数组 可以使用扩展运算符将多个数组合并成一个数组: ```javascript const arr1 = [1, 2, 3]; const arr2 = [4, 5, 6]; const arr3 = [...arr1, ...arr2]; console.log(arr3); // [1, 2, 3, 4, 5, 6] ``` 可以使用扩展运算符将多个可迭代的对象合并成一个数组: ```javascript const set = new Set([1, 2, 3]); const str = "hello"; const arr = [...set, ...str]; console.log(arr); // [1, 2, 3, "h", "e", "l", "l", "o"] ``` 3. 函数调用时传参 可以使用扩展运算符将一个数组作为参数传入函数: ```javascript function sum(a, b, c) { return a + b + c; } const arr = [1, 2, 3]; console.log(sum(...arr)); // 6 ``` 可以使用扩展运算符将多个数组作为参数传入函数: ```javascript function sum(a, b, c, d, e) { return a + b + c + d + e; } const arr1 = [1, 2]; const arr2 = [3, 4]; const arr3 = [5]; console.log(sum(...arr1, ...arr2, ...arr3)); // 15 ``` 以上就是扩展运算符的用法。它可以使我们的代码更简洁、更易读,是一个非常实用的特性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值