一些js代码优化方法,写出一手优雅的代码

js代码

<script>
        function test1(){
             // 如何装逼用代码骂别人SB
            console.log('(!(~+[])+{})[--[~+""][+[]]*[~+[]] + ~~!+[]]+({}+[])[[~!+[]]*~+[]]',(!(~+[])+{})[--[~+""][+[]]*[~+[]] + ~~!+[]]+({}+[])[[~!+[]]*~+[]]);
        }
        function test2(){
            // 如何用代码优雅的证明自己NB
            console.log('([][[]]+[])[+!![]]+([]+{})[!+[]+!![]]',([][[]]+[])[+!![]]+([]+{})[!+[]+!![]]);
        }

        function test3(){
            // 如何优雅的取随机字符串
            console.log('Math.random().toString(16).substring(2)',Math.random().toString(16).substring(2));
            console.log('Math.random().toString(36).substring(2)',Math.random().toString(36).substring(2));
        }


        function test4(){
        // 如何优雅的取整
        var a = ~~2.33 //这种方法还可以将字符串转换成数字类型
        var b= 2.33 | 0
        var c= 2.33 >> 0
        console.log('var a = ~~2.33 var b= 2.33 | 0 var c= 2.33 >> 0',a, b, c);
        }

        function test5(){
            // 如何优雅的实现金钱格式化:1234567890 –> 1,234,567,890
            var test1 = '1234567890'
            var format = test1.replace(/\B(?=(\d{3})+(?!\d))/g, ',')
            console.log('var test1 = 1234567890 var format = test1.replace(/\B(?=(\d{3})+(?!\d))/g, ',')',format) // 1,234,567,890
        }


        // 逗号运算符
        function test6(){
            var a = 0; 
            var b = ( a++, 99 ); 
            console.log('var a = 0; ',a);  // 1
            console.log('var b = ( a++, 99 ); ',b);  // 99
        }

        // 论如何最佳的让两个整数交换数值
        function test7  (){
            var a = 0; 
            var b = ( a++, 99 );
            a ^= b;
            b ^= a;
            a ^= b;
            console.log ('var a = 0; var b = ( a++, 99 ); a ^= b; b ^= a; a ^= b;',a,b);
        }

        // 实现标准JSON的深拷贝
        function test8(){
            var a = {
                a: 1,
                b: { c: 1, d: 2 }
            }
            var b=JSON.parse(JSON.stringify(a))
            console.log(' var a = {a: 1,  b: { c: 1, d: 2 } }  var b=JSON.parse(JSON.stringify(a))',b);
        }
        // 不用Number、parseInt和parseFloat和方法把”1”字符串转换成数字
        function test9(){
            var a =1 ;
            +a
            console.log('var a =1 ; +a',typeof(a));
        }

        function test10(){
            console.log('parseInt(0.0000008) === 8',parseInt(0.0000008) === 8)

            console.log('++[[]][+[]]+[+[]] == 10',++[[]][+[]]+[+[]] == 10)

            console.log('0.1 + 0.2 == 0.3',0.1 + 0.2 == 0.3)
        }

    // 0.1 +0.2 == 0.3竟然是不成立的。。。。所以这就是为什么数据库存储对于货币的最小单位都是分。

    // 简单说,0.1和0.2的二进制浮点表示都不是精确的,所以相加后不是0.3,接近(不等于) 
    // 0.30000000000000004。

    // 所以,比较数字时,应该有个宽容值。ES6中这个宽容值被预定义了:Number.EPSILON。

    // 最短的代码实现数组去重
    function test11(){
        console.log('[...new Set([1, "1", 2, 1, 1, 3])]',[...new Set([1, "1", 2, 1, 1, 3])]);
    }

        // 取出一个数组中的最大值和最小值

        function test12(){
            var numbers = [5, 458 , 120 , -215 , 228 , 400 , 122205, -85411];
            var maxInNumbers = Math.max.apply(Math, numbers); 
            var minInNumbers = Math.min.apply(Math, numbers);
            console.log('var numbers = [5, 458 , 120 , -215 , 228 , 400 , 122205, -85411]; var maxInNumbers = Math.max.apply(Math, numbers); var minInNumbers = Math.min.apply(Math, numbers);',maxInNumbers,minInNumbers);
        }

    // 这个就厉害了
        function test13(){
            while (1) {
                alert('牛逼你把我关了啊')
            }
        }


    </script>

html代码

<html style="margin-left:300px;">

<p> <button id="test1" onclick="test1()">test1</button> 如何装逼用代码骂别人SB</p>
<p><button id="test2" onclick="test2()">test2</button> 如何用代码优雅的证明自己NB</p>
<p><button id="test3" onclick="test3()">test3</button> 如何优雅的取随机字符串</p>
<p><button id="test4" onclick="test4()">test4</button> 如何优雅的取整</p>
<p><button id="test5" onclick="test5()">test5</button> 优雅的实现金钱格式化</p>
<p><button id="test6" onclick="test6()">test6</button> 逗号运算符</p>
<p><button id="test7" onclick="test7()">test7</button> 如何最佳的让两个整数交换数值</p>
<p><button id="test8" onclick="test8()">test8</button> 实现标准JSON的深拷贝</p>
<p><button id="test9" onclick="test9()">test9</button> 不用Number、parseInt和parseFloat和方法把”1”字符串转换成数字</p>
<p><button id="test10" onclick="test10()">test10</button> 二进制浮点 </p>
<p><button id="test11" onclick="test11()">test11</button> 最短的代码实现数组去重</p>
<p><button id="test12" onclick="test12()">test12</button> 取出一个数组中的最大值和最小值</p>
<p><button id="test13" onclick="test13()">test13</button> </p>

</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晴天有点孤单

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值