美文网首页
有意思的JavaScript代码(装X神器)之上篇

有意思的JavaScript代码(装X神器)之上篇

作者: my沙漠玫瑰 | 来源:发表于2018-11-08 15:10 被阅读0次

    1.高逼格骂人sb

    (!(~+[])+{})[--[~+""][+[]]*[~+[]] + ~~!+[]]+({}+[])[[~!+[]]*~+[]]

    轻松骂人sb

    2.如何证明自己牛逼?

    ([][[]]+[])[+!![]]+([]+{})[!+[]+!![]]

    nb

    3.不明觉厉的一行代码,选中当前页面所有元素,并随机加上“outline”属性

    Array.prototype.forEach.call(document.querySelectorAll('*'),dom => dom.style.outline = `1px solid #${parseInt(Math.random() * Math.pow(2,24)).toString(16)}`)

    不明觉厉的一行代码

    4.优雅的创建随机字符

    Math.random().toString(14).substring(2)

    http://www.runoob.com/jsref/jsref-tostring-number.html(toString()的用法,参数2,8,10,16为进制,参数为2-36之间的值)

    5.十五个匿名函数自执行函数写法

    (function(){ alert("1-(())") }());

    [function(){ alert("2-[]()") }()];

    (function(){ alert("3-()()") })() ;

    ~ function(){ alert("4-~") }();

    ! function(){ alert("5-!") }();

    + function(){ alert("6-+") }();

    - function(){ alert("7--") }();

    1,function(){ alert("8-1,") }();

    1^function(){ alert("9-1^") }();

    1>function(){ alert("10-1>") }();

    delete function(){ alert("11-delete") }();

    typeof function(){ alert("12-typeof") }();

    void function(){ alert("13-void") }();

    new function(){ alert('14-new') }

    new function(){ alert('15-new()') }();

    6.三种优雅的取整方法,正常是去尾取整;

    (1)、~~1.8888888888888;

    (2)、1.9999999|0

    (3)、1.999999999>>0

    注:如果1.9999999999999999999999999999999,结果是2,意思是无限接近于2,如下图测试;

    7.一行代码搞定星级评定问题

    var rate = 0;(定义一个rate变量,rate为几就是几颗星);

    "★★★★★☆☆☆☆☆".slice(5 - rate, 10 - rate);五颗星

    "★★★★★★☆☆☆☆☆☆".slice(6 - rate, 12 - rate);六颗星

    8.两个整数交换;

     (1)正常交换

    var a=4,b=20;

    a+=b;  b=a-b;  a-=b;

    交换成功;a = 20; b = 4;

    (2)C语言异或交换,写法更简洁;

    var a=12,b=30;

    a^=b;   b^=a;   a^=b;

    交换成功;a = 30; b = 12;

    9.不用Number、parseInt和parseFloat和方法把"10"字符串转换成数字

    var a="10";

    a= +a;  typeOf(a);  Number;

    10.如何优雅的实现金钱格式化:1234567890 --> 1,234,567,890

    (1)正则实现

    var currency = 1234567890;

    var format = currency.toString().replace(/\B(?=(\d{3})+(?!\d))/g,",")

    alert(format); "1,234,567,890"

    (2)非正则的优雅实现

    function formatCash(str){

                   return  str.split("").reverse().reduce((prev,next,index) => {

                        return ((index % 3) ? next : next + ",") + prev;

        })

    }

    console.log(formatCash("1234567890"));

    根据此链接整理:http://news.51cto.com/art/201711/557194.htm

    相关文章

      网友评论

          本文标题:有意思的JavaScript代码(装X神器)之上篇

          本文链接:https://www.haomeiwen.com/subject/byrvxqtx.html