• 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>
  • 相关阅读:
    form 元素横向排列
    mysql5.6 主从同步
    centos iptables
    angular 数据绑定
    angular路由 模块 依赖注入
    angular $scope对象
    angular前端开发环境
    使用STM32CubeMX生成RTC工程[闹钟中断2]
    利用STM32CubeMX生成HID双向通讯工程
    使用STM32CubeMX生成RTC工程[秒中断]
  • 原文地址:https://www.cnblogs.com/XieYFwin/p/10852696.html
Copyright © 2020-2023  润新知