blog icon indicating copy to clipboard operation
blog copied to clipboard

这些JavaScript编程黑科技,装逼指南,高逼格代码,让你惊叹不已

Open jawil opened this issue 8 years ago • 132 comments
trafficstars

Javascript是一门很吊的语言,我可能学了假的JavaScript,哈哈,大家还有什么推荐的,补充送那啥邀请码。

本文秉承着:你看不懂是你SB,我写的代码就要牛逼。

1、单行写一个评级组件

"★★★★★☆☆☆☆☆".slice(5 - rate, 10 - rate);定义一个变量rate是1到5的值,然后执行上面代码,看图

才发现插件什么的都弱爆了

来源:来自知乎用户蜗牛老湿的回答

2、如何装逼用代码骂别人SB

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

了解为什么请移步:一行能装逼的JavaScript代码

3、如何用代码优雅的证明自己NB

这个牛逼了

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

4、JavaScript 错误处理的方式的正确姿势

😂😂😂,舅服你

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

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

具体分析请参见这篇文章:从一行代码里面学点JavaScript

6、论如何优雅的取随机字符串

Math.random().toString(16).substring(2) 
Math.random().toString(36).substring(2) 

7、(10)["toString"]() === "10"

解析请移步:js奇淫技巧1

8、匿名函数自执行

这么多写法你选择哪一种?我选择死亡。

( 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() {}();
// ...

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的写法让代码晦涩难懂。

10、论如何优雅的取整

var a = ~~2.33

var b= 2.33 | 0

var c= 2.33 >> 0

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

12、这个我服,还有这个你很机智

我服

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

你很机智,好一个障眼法

清除缓存: <a href="javascript:alert('清除成功');">清除缓存</a>

13、逗号运算符

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

14、论如何最佳的让两个整数交换数值

常规办法:

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

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

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

哈哈😄,看不懂的童鞋建议去补习一下C语言的位操作,我就不去复习了,以前学嵌入式时候学的位操作都忘了

15、实现标准JSON的深拷贝

var a = {
    a: 1,
    b: { c: 1, d: 2 }
}
var b=JSON.parse(JSON.stringify(a))

不考虑IE的情况下,标准JSON格式的对象蛮实用,不过对于undefined和function的会忽略掉。

16、不用Number、parseInt和parseFloat和方法把"1"字符串转换成数字

哈哈,不准用强制类型转换,那么就想到了强大了隐式转换

var a =1 
+a

17、如何装逼的写出"hello world!"

滚动条很长哦😯

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

居然能运行,牛逼的隐式转换

18、parseInt(0.0000008) === 8

19、++[[]][+[]]+[+[]] == 10

强大的隐式转换,23333

20、0.1 + 0.2 == 0.3

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

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

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

21、最短的代码实现数组去重

[...new Set([1, "1", 2, 1, 1, 3])]

前不久面试阿里就问了这道题,哈哈,所以也写上一下

22、用最短的代码实现一个长度为m(6)且值都n(8)的数组

Array(6).fill(8)

这个够短了吧,好像是当初哪里看到的一个面试题,就自己想到了ES6的一些API

23、短路表达式

条件判断

var a = b && 1
    // 相当于
if (b) {
    a = 1
} else {
    a = b
}

var a = b || 1
    // 相当于
if (b) {
    a = b
} else {
    a = 1
}

24、JavaScript版迷宫

逃出迷宫,2333

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

var numbers = [5, 458 , 120 , -215 , 228 , 400 , 122205, -85411]; 
var maxInNumbers = Math.max.apply(Math, numbers); 
var minInNumbers = Math.min.apply(Math, numbers);

26、将argruments对象转换成数组

var argArray = Array.prototype.slice.call(arguments);

或者ES6:

var argArray = Array.from(arguments)

27、javascript高逼格之Function构造函数

很多JavaScript教程都告诉我们,不要直接用内置对象的构造函数来创建基本变量,例如var arr = new Array(2); 的写法就应该用var arr = [1, 2];的写法来取代。

但是,Function构造函数(注意是大写的Function)有点特别。Function构造函数接受的参数中,第一个是要传入的参数名,第二个是函数内的代码(用字符串来表示)。

var f = new Function('a', 'alert(a)');
f('jawil'); // 将会弹出窗口显示jawil

这种方式可以根据传入字符串内容来创建一个函数 是不是高大上?!

28、从一个数组中找到一个数,O(n)的算法,找不到就返回 null。

正常的版本:

function find (x, y) {
  for ( let i = 0; i < x.length; i++ ) {
    if ( x[i] == y ) return i;
  }
  return null;
}
 
let arr = [0,1,2,3,4,5]
console.log(find(arr, 2))
console.log(find(arr, 8))

结果到了函数式成了下面这个样子(好像上面的那些代码在下面若影若现,不过又有点不太一样,为了消掉if语言,让其看上去更像一个表达式,动用了 ? 号表达式):

//函数式的版本
const find = ( f => f(f) ) ( f =>
  (next => (x, y, i = 0) =>
    ( i >= x.length) ?  null :
      ( x[i] == y ) ? i :
        next(x, y, i+1))((...args) =>
          (f(f))(...args)))
 
let arr = [0,1,2,3,4,5]
console.log(find(arr, 2))
console.log(find(arr, 8))

如何读懂并写出装逼的函数式代码

最后奉劝大家一句:莫装逼、白了少年头,2333。。。原文收录在我的 GitHub博客 (https://github.com/jawil/blog) ,喜欢的可以关注最新动态,大家一起多交流学习,共同进步,以学习者的身份写博客,记录点滴。

jawil avatar Aug 20 '17 02:08 jawil

知乎上的?

GreatAuk avatar Aug 20 '17 03:08 GreatAuk

我是沙发

shendengnian avatar Aug 20 '17 03:08 shendengnian

Quora上的? @GreatAuk

jawil avatar Aug 20 '17 03:08 jawil

格式化钱那个为啥不用 toLocaleString

muzea avatar Aug 20 '17 03:08 muzea

咋用,还请赐教。@muzea

jawil avatar Aug 20 '17 03:08 jawil

杀死那个装逼的 :satisfied:

chaoren1641 avatar Aug 20 '17 03:08 chaoren1641

@jawil

(23333333).toLocaleString('en-US')

muzea avatar Aug 20 '17 04:08 muzea

🐸真正的大佬。。。

Germxu avatar Aug 20 '17 04:08 Germxu

学习了,6666,我知道那些感觉都弱爆了。。。 @muzea

jawil avatar Aug 20 '17 04:08 jawil

2333 that's greateeeeee

joe223 avatar Aug 20 '17 04:08 joe223

竟还有这种操作 😳

violaY33 avatar Aug 20 '17 04:08 violaY33

还有个布尔值的处理 eg:!!0 === false

joe223 avatar Aug 20 '17 04:08 joe223

让js脚本永远不报错的方法: window.onerror = function(m, f, l){ return true }

fXy-during avatar Aug 20 '17 05:08 fXy-during

第14条可以

let a = 1, b = 2;
[a, b] = [b, a];

szu-bee avatar Aug 20 '17 05:08 szu-bee

666,ES6还是强大方便 @szu-bee

jawil avatar Aug 20 '17 05:08 jawil

RGB to Hex

function toHEX(rgb){
	return ((1<<24) + (rgb.r<<16) + (rgb.g<<8) + rgb.b).toString(16).substr(1);
}

这篇文章没什么很实用的干货。

DemonCloud avatar Aug 20 '17 06:08 DemonCloud

很强

hfuuss avatar Aug 20 '17 08:08 hfuuss

关于JSON.parse的深度拷贝中,Date类型也会被更改,由Date对象变为String image

joe223 avatar Aug 20 '17 09:08 joe223

很强!

fanshunyu avatar Aug 20 '17 12:08 fanshunyu

666

zanjs avatar Aug 20 '17 13:08 zanjs

666

ruooooooli avatar Aug 20 '17 13:08 ruooooooli

JS装逼权威指南

QDMarkMan avatar Aug 20 '17 13:08 QDMarkMan

果然奇淫异技

pingan8787 avatar Aug 20 '17 14:08 pingan8787

github jsfuck

peterchealse avatar Aug 20 '17 15:08 peterchealse

很奇很淫 😃

SSShooter avatar Aug 20 '17 15:08 SSShooter

mark

takkiTang avatar Aug 20 '17 15:08 takkiTang

竟然没人要邀请码

Ronweyh avatar Aug 21 '17 00:08 Ronweyh

老哥,我的邀请码呢~~

dongliang1993 avatar Aug 21 '17 01:08 dongliang1993

啥邀请码?

juntingl avatar Aug 21 '17 01:08 juntingl

或许这就是大佬吧

legold avatar Aug 21 '17 02:08 legold

很多都在你不知道的javascript里看到过、、、

Double1h avatar Aug 21 '17 02:08 Double1h

23那个短路表达式好像在代码大全里看到过

TonyAir avatar Aug 21 '17 02:08 TonyAir

打个广告,20行js写的贪吃蛇,这里是github

kongchenglc avatar Aug 21 '17 02:08 kongchenglc

有没有邀请码

5265liu avatar Aug 21 '17 02:08 5265liu

看到题主截图里面浏览器标签栏里的草榴社区,我就觉得这个议题可能没那么简单

ShawnEli avatar Aug 21 '17 06:08 ShawnEli

1024,书签里秘密很多啊!

Jevirs avatar Aug 21 '17 08:08 Jevirs

image 最大亮点

marsprince avatar Aug 21 '17 09:08 marsprince

请不要在意细节 @marsprince @Jevirs @vickymmf

jawil avatar Aug 21 '17 10:08 jawil

image 厉害了

realwugang avatar Aug 21 '17 10:08 realwugang

可以在文章里增加[![](https://badge.juejin.im/entry/5998f8396fb9a0247c6ec9cd/likes.svg?style=flat)](https://juejin.im/entry/5998f8396fb9a0247c6ec9cd/detail)

就能看到文章在掘金上的喜欢数了!

kalasoo avatar Aug 21 '17 11:08 kalasoo

继犀牛书之后又一畅销书,封面doge

jun1362008 avatar Aug 21 '17 11:08 jun1362008

还有这个功能😂,这是不为人知的小tips么 @kalasoo

jawil avatar Aug 21 '17 11:08 jawil

@jawil 刚刚发布,立即过来适用一波!

kalasoo avatar Aug 21 '17 11:08 kalasoo

image image

amorist avatar Aug 21 '17 11:08 amorist

@amor520 关闭安全搜索,并把搜索语言设置为繁体中文。。。

jawil avatar Aug 21 '17 11:08 jawil

老奶奶过马路不服,我就服你。

ipengyo avatar Aug 22 '17 02:08 ipengyo

第一个是我的知乎回答https://www.zhihu.com/question/46943112/answer/113583615

shengxinjing avatar Aug 22 '17 03:08 shengxinjing

已注明最初来源,抱歉之前也不知道这个最初来自哪里。 @shengxinjing

jawil avatar Aug 22 '17 03:08 jawil

第七条 (10)["toString"]() === "10" 写成 10..toString() === "10" 更显装逼~

mqyqingfeng avatar Aug 22 '17 03:08 mqyqingfeng

哈哈,你一定看过你不知道的JavaScript @mqyqingfeng

jawil avatar Aug 22 '17 03:08 jawil

我来补充一个"i love you":

[[][0] + []][0][5]+[[][[[][0] + []][0][4]+[[][0] + []][0][5]+[[][0] + []][0][1]+[[][0] + []][0][2]] + []][0][8]+[[[] == []][0] + []][0][2]+[[][[[][0] + []][0][4]+[[][0] + []][0][5]+[[][0] + []][0][1]+[[][0] + []][0][2]] + []][0][6]+[[][[[][0] + []][0][4]+[[][0] + []][0][5]+[[][0] + []][0][1]+[[][0] + []][0][2]]+[]][0][23]+[[][0] + []][0][3]+[[][[[][0] + []][0][4]+[[][0] + []][0][5]+[[][0] + []][0][1]+[[][0] + []][0][2]] + []][0][8]+[+[1 + [[][0] + []][0][3] +309][0] + []][0][7]+[[][[[][0] + []][0][4]+[[][0] + []][0][5]+[[][0] + []][0][1]+[[][0] + []][0][2]] + []][0][6]+[[][0] + []][0][0]

mqyqingfeng avatar Aug 22 '17 03:08 mqyqingfeng

然而有点兼容性问题,只限在 Chrome 哈~ 😂😂😂 火狐就变成其他意思了……

mqyqingfeng avatar Aug 22 '17 03:08 mqyqingfeng

@jawil 哈哈 这个文章总结的太全了,已star

shengxinjing avatar Aug 22 '17 04:08 shengxinjing

吃瓜群众感觉 好厉害的样子

coleShang avatar Aug 22 '17 05:08 coleShang

清除缓存那个我服。

fekata avatar Aug 22 '17 05:08 fekata

感觉学了假的js

yuling avatar Aug 22 '17 06:08 yuling

11 是有问题的

console.log( '1.0123'.replace(/\B(?=(\d{3})+(?!\d))/g, ','))

result: 1.0,123

huangyuan avatar Aug 22 '17 06:08 huangyuan

JavaScript版迷宫 那个图片有些模糊,是否可以 以文字的方式发布下源码

xuhuanstudio avatar Aug 22 '17 10:08 xuhuanstudio

楼主6666,学习了,虽然好多还没有看明白

joker-danta avatar Aug 22 '17 14:08 joker-danta

楼主太6了,果然是奇淫技巧

yeah2569 avatar Aug 23 '17 01:08 yeah2569

@skyDancers 里面有随机的啊,怎么会生成迷宫

muzea avatar Aug 23 '17 02:08 muzea

很强势。

VonJie avatar Aug 23 '17 02:08 VonJie

666

Hancoson avatar Aug 23 '17 03:08 Hancoson

只能说666

xiangwenhu avatar Aug 23 '17 03:08 xiangwenhu

老哥稳

LawlietZe avatar Aug 23 '17 07:08 LawlietZe

husky1

juniway avatar Aug 23 '17 10:08 juniway

Math.random().toString(36).substring(2) 这类产生随机字符串的方法不严谨 因为Math.random()位数是不固定的 玩玩可以 实际使用估计不行

mkzxcvbnm avatar Aug 24 '17 02:08 mkzxcvbnm

全是知乎的哇

biou23 avatar Aug 24 '17 08:08 biou23

教一下,sos怎么打出来啊?以后万一碰到传销,咱们程序员还能有个保命技能

bearofbear avatar Aug 25 '17 01:08 bearofbear

@mqyqingfeng 因为别的浏览器native code前面会有空格 就不是23就不是v了hhh

Aaaaaaaty avatar Aug 25 '17 05:08 Aaaaaaaty

stackoverflow 的那个笑死😂

igaozp avatar Aug 25 '17 05:08 igaozp

6、论如何优雅的取随机字符串 在我chrome控制台(版本 55.0.2883.87 m) Math.random().toString(36).substring(2)//经测试23-26位都有可能 "7jz8ov7swm7ong7w77x9jdobt9" 为何和上面的有差异性呢?是我Chrome版本太低还是太高导致JS的版本不一致导致的?

zplufb avatar Aug 29 '17 01:08 zplufb

这个可能有误导,不好意思,我已经修改了,因为Math.random生成的随机数可能很长,也可能很短。@zplufb

jawil avatar Aug 29 '17 01:08 jawil

@tianlong-zhang @pspgbhu

ruooooooli avatar Aug 29 '17 01:08 ruooooooli

什么时候出个CSS的奇技淫巧呢?

szu-bee avatar Aug 29 '17 13:08 szu-bee

28、从一个数组中找到一个数,O(n)的算法,找不到就返回 null。 正常算法不是这个么: const find = (arr,x) => arr.filter(num=>num===x)[0]||null;

LastHeaven avatar Aug 30 '17 01:08 LastHeaven

http://www.jianshu.com/p/2ea971d88635 @jawil 有人抄袭

TokenYangForever avatar Sep 04 '17 08:09 TokenYangForever

谢谢反馈,这种人不用太在意,满足一下他的虚荣心😂 ,简书上都这样,也没人管 @TokenYangForever

jawil avatar Sep 04 '17 08:09 jawil

我提醒他,他还删我评论,这种奇葩真是不多见~~~

TokenYangForever avatar Sep 04 '17 09:09 TokenYangForever

鸟多了,什么林子都有,有那么一群人就是这样,不用太care😊 @TokenYangForever

jawil avatar Sep 04 '17 09:09 jawil

[...'8'.repeat(6)]

tgxhx avatar Sep 05 '17 04:09 tgxhx

草榴网址换了么。。

watsonnnnn avatar Sep 06 '17 04:09 watsonnnnn

你们这样子装逼会被其他程序员杀死的

mobutcher avatar Sep 09 '17 09:09 mobutcher

mark

epver avatar Sep 19 '17 02:09 epver

你司前端什么技术栈? @jawil

AlenQi avatar Sep 23 '17 08:09 AlenQi

什么都用,目前主流的一些框架和技术栈吧,webapck + react/vue + sass/less + ES6/7/8啥的 @AlenQi

jawil avatar Sep 23 '17 08:09 jawil

@jawil 用Vue搞了一通之后,感觉无比舒服,再看React就感觉好怪 你都用过感觉咋样?

hezhongfeng avatar Sep 23 '17 08:09 hezhongfeng

react主要是JSX语法你不太舒服吧,Vue的模板绑定语法可能你比较容易接受,两者我更倾向于用React,Vue是让你先爽后痛,React让你先痛后爽,两者各有千秋吧,都是组件式和数据驱动的思想,React带来的颠覆性的是Vue不能比的。@hezhongfeng

jawil avatar Sep 23 '17 09:09 jawil

@jawil 对,就是JSX 我得深入下了

hezhongfeng avatar Sep 24 '17 01:09 hezhongfeng

@hezhongfeng 先爽后痛,无非是社区深度的问题, 其实两者在很多内容上都是相似的理念,我个人喜欢vue,毕竟是一个缓慢过渡的人员

epver avatar Sep 25 '17 01:09 epver

@cheneyliu 好的,谢谢意见。 我还没遇到棘手的问题,所以用着vue还是很舒服 也没有深入过React,所以不好对比 不过论社区,React是真火,国内NG感觉是gg了

hezhongfeng avatar Sep 25 '17 01:09 hezhongfeng

@hezhongfeng 看这两张图,感觉vue被react完爆了 React: Vue: 😂

jawil avatar Sep 25 '17 02:09 jawil

@jawil 其实我觉得还好,已经追上来不少了,原先是10+倍 而且issue和pr处理的挺快的~

hezhongfeng avatar Sep 25 '17 02:09 hezhongfeng

毕竟寡不敌众😂,react那个主力开发的女程序媛好6 @hezhongfeng

jawil avatar Sep 25 '17 02:09 jawil

@jawil 并不能这么看,vue很多用户会使用国内的加速源

muzea avatar Sep 25 '17 02:09 muzea

@jawil @muzea 别吵,知乎上都吵成一片了 不过根据数据,我承认两点 1,现阶段React是最火的,社区的力量也是最大的 2,vue的发展也是真的快,并且差距在缩小 3,NG要狗带?

hezhongfeng avatar Sep 25 '17 02:09 hezhongfeng

第5条里的 "$$" 函数谁能讲解下?

IE11 里是 function(n,t){return t?t.querySelectorAll.call(t,n):window.document.querySelectorAll.apply(window.document,arguments)}

Edge里面是未定义(Microsoft Edge 41.16296.0.0)

Chrome 里

ƒ $$(selector, [startNode]) { [Command Line API] }

FF 的文档写它是 Web 开发控制台的 helper command MDN

ikenbe avatar Sep 26 '17 00:09 ikenbe

@hezhongfeng ng狗带我觉得可能,现在我在用ng开发,ng太重,规矩太多,束手束脚发挥起来困难,而且ng4目前社区周边不如vue,react

epver avatar Sep 26 '17 01:09 epver

还有一个实用并且我经常用的:判断是否包含某元素,支持数组、字符串等 if(~"asdf".lastIndexOf("a")){ alert("exists"); }

leejaen avatar Sep 27 '17 03:09 leejaen

@leejaen 为什么用lastIndexOf 不直接用indexOf

wood-liu92 avatar Sep 27 '17 10:09 wood-liu92