V2EX 首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
V2EX  ›  JavaScript

这个前端代码太鬼畜了,完全看不懂了~有大神说一下吗?

  •  
  •   WytheHuang · 269 天前 · 2761 次点击
    这是一个创建于 269 天前的主题,其中的信息可能已经有所发展或是发生改变。

    代码如下: (f =>(x => f(y => x(x)(y)))(x => f(y => x(x)(y))) )(get => node => Array.from(node.childNodes) .filter(node => node.nodeType === Node.ELEMENT_NODE).reduce((depth, node) => Math.max(depth, get(node) + 1), 1) )(document.documentElement)

    微博链接: http://weibo.com/1074886493/EodjO45ln?type=comment#_rnd1482937548088

    15 回复  |  直到 2017-01-02 21:54:14 +08:00
        1
    hxsf   269 天前 via iPhone
    手机阅读。没啥格式化工具。

    目测是遍历 dom 树 返回最大深度

    关键字
    箭头函数 立即执行函数
        2
    exoticknight   269 天前
    去看看 Y Combinator ,然后应该就懂了……
        3
    xcatliu   269 天前
    不知道把代码写成这样有什么意义
        4
    alexsunxl   269 天前
    作用就跟一楼说那样了, 获得 dom 树最大深度
    其实执行一下就知道了, 一般这种就是从右往左边看
    附图
        5
    lijsh   269 天前
    美化一下:
    (f =>
    (x => f(y => x(x)(y)))
    (x => f(y => x(x)(y)))
    )
    (get =>
    node =>
    Array.from(node.childNodes)
    .filter(node => node.nodeType === Node.ELEMENT_NODE)
    .reduce((depth, node) => Math.max(depth, get(node) + 1), 1)
    )
    (document.documentElement)

    (f =>
    (x => f(y => x(x)(y)))
    (x => f(y => x(x)(y)))
    )
    这种形式是 Y Combinator ,作用是让匿名函数递归自身。

    node =>
    Array.from(node.childNodes)
    .filter(node => node.nodeType === Node.ELEMENT_NODE)
    .reduce((depth, node) => Math.max(depth, get(node) + 1), 1)

    这里就是找 node 的后代元素嵌套深度的,后面把 document.documentElement 传进来。
        6
    lijsh   269 天前
    本想美化一下,没想到排版还是瞎眼…
        7
    yidinghe   269 天前
    试下 markdown

    ```
    function(abc) {
    alert("Hello!");
    }
    ```
        8
    apoclast   269 天前
    注意力从前端挪走几年了. 现在浏览器支持的 javascript 引擎是什么版本? 什么样的浏览器能支持这种函数式的 js 语法?
        9
    se77en   269 天前
    @apoclast 主要的浏览器现在都支持了,而且 ES6 规范里规定了 tail call optimization
        10
    kopp123   268 天前
    这还算鬼畜。这才叫鬼畜
    [][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]][([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]]((![]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]+(!![]+[])[+[]]+(![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[!+[]+!+[]+[+[]]]+[+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[!+[]+!+[]+[+[]]])()
        11
    lslqtz   268 天前
    @kopp123 居然真的能执行哈哈哈哈哈哈哈
        12
    mentalidade   268 天前
    @kopp123 可怕,试了下真可以
        13
    KIDJourney   268 天前 via Android
    jsfuck
        14
    Damn   268 天前 via Android
    @kopp123 卧槽,神马原理。。
        15
    palmers   264 天前
    箭头函数没有原函数语法清晰 我觉得
    DigitalOcean
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   鸣谢   ·   1579 人在线   最高记录 3541   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.7.5 · 46ms · UTC 08:25 · PVG 16:25 · LAX 01:25 · JFK 04:25
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1