28个让你惊叹的JavaScript黑科技代码

01300000079139120901934510252.jpg

avascript是一门很吊的语言,我可能学了假的JavaScript,哈哈,大家还有什么推荐的,补充送那啥邀请码。
本文秉承着:你看不懂是你SB,我写的代码就要牛逼。1、单行写一个评级组件
“★★★★★☆☆☆☆☆”.slice(5 – rate, 10 – rate);定义一个变量rate是1到5的值,然后执行上面代码,看图
28个让你惊叹的JavaScript黑科技代码
才发现插件什么的都弱爆了
28个让你惊叹的JavaScript黑科技代码
来源:来自知乎用户蜗牛老湿的回答2、如何装逼用代码骂别人SB

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

28个让你惊叹的JavaScript黑科技代码
28个让你惊叹的JavaScript黑科技代码
了解为什么请移步:一行能装逼的JavaScript代码3、如何用代码优雅的证明自己NB
这个牛逼了

	console.log(([[]]+)[+!![]]+(+{})[!+[]+!!])

28个让你惊叹的JavaScript黑科技代码
28个让你惊叹的JavaScript黑科技代码
4、JavaScript 错误处理的方式的正确姿势
 
舅服你

try {
something
} catch (e) {
window.location.href =
"http://stackoverflow.com/search?q=[js]+" +
e.message;
}

28个让你惊叹的JavaScript黑科技代码
28个让你惊叹的JavaScript黑科技代码5、从一行代码里面学点JavaScript

[].forEach.call($$("*"),function(a){
a.style.outline="1px solid #"+(~~(Math.random()*(1<<24))).toString(16)
})

翻译成正常语言就是这样的

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

接下来在浏览器控制看看:something magic happens
28个让你惊叹的JavaScript黑科技代码
28个让你惊叹的JavaScript黑科技代码
具体分析请参见这篇文章:从一行代码里面学点JavaScript6、论如何优雅的取随机字符串

Math.random().toString(16).substring(2) // 13位
Math.random().toString(36).substring(2) // 11位

28个让你惊叹的JavaScript黑科技代码7、(10)[“toString”]() === “10”
28个让你惊叹的JavaScript黑科技代码
解析请移步:js奇淫技巧18、匿名函数自执行
这么多写法你选择哪一种?我选择死亡。

( function() {}() );
( function() {} )();
[ function() {}() ];

~ function() {}();
! function() {}();
+ function() {}();
- function() {}();

delete function() {}();
typeof function() {}();
void function() {}();
new function() {}();
new function() {};

var f = function() {}();

1, function() {}();
1 ^ function() {}();
1 > function() {}();
// ...

28个让你惊叹的JavaScript黑科技代码9、另外一种undefined
从来不需要声明一个变量的值是undefined,因为JavaScript会自动把一个未赋值的变量置为undefined。所有如果你在代码里这么写,会被鄙视的

var data = undefined;

但是如果你就是强迫症发作,一定要再声明一个暂时没有值的变量的时候赋上一个undefined。那你可以考虑这么做:

 var data = void 0; // undefined

void在JavaScript中是一个操作符,对传入的操作不执行并且返回undefined。void后面可以跟()来用,例如void(0),看起来是不是很熟悉?没错,在HTML里阻止带href的默认点击操作时,都喜欢把href写成javascript:void(0),实际上也是依靠void操作不执行的意思。
当然,除了出于装逼的原因外,实际用途上不太赞成使用void,因为void的出现是为了兼容早起ECMAScript标准中没有undefined属性。void 0的写法让代码晦涩难懂。
28个让你惊叹的JavaScript黑科技代码10、论如何优雅的取整

var a = ~~2.33

var b= 2.33 | 0

var c= 2.33 >> 0

28个让你惊叹的JavaScript黑科技代码11、如何优雅的实现金钱格式化:1234567890 –> 1,234,567,890
用正则魔法实现:

var test1 = '1234567890'
var format = test1.replace(//B(?=(/d{3})+(?!/d))/g, ',')

console.log(format) // 1,234,567,890

非正则的优雅实现:

 function formatCash(str) {
return str.split('').reverse().reduce((prev, next, index) => {
return ((index % 3) ? next : (next + ',')) + prev
})
}
console.log(formatCash('1234567890')) // 1,234,567,890

28个让你惊叹的JavaScript黑科技代码12、这个我服,还有这个你很机智
我服

while (1) {
alert('牛逼你把我关了啊')
}

你很机智,好一个障眼法

清除缓存: 清除缓存

28个让你惊叹的JavaScript黑科技代码13、逗号运算符

var a = 0; 
var b = ( a++, 99 );
console.log(a); // 1
console.log(b); // 99

28个让你惊叹的JavaScript黑科技代码14、论如何最佳的让两个整数交换数值
常规办法:

var a=1,b=2;
a += b;
b = a - b;
a -= b;

缺点也很明显,整型数据溢出,对于32位字符最大表示数字是2147483647,如果是2147483645和2147483646交换就失败了。
黑科技办法:

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

28个让你惊叹的JavaScript黑科技代码
哈哈

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/256496.html

(0)
上一篇 2022年5月18日
下一篇 2022年5月18日

相关推荐

发表回复

登录后才能评论