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

2018-11-08  本文已影响0人  my沙漠玫瑰

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

上一篇下一篇

猜你喜欢

热点阅读