推荐关注
› Meteor
› JSLint - a JavaScript code quality tool
› jsFiddle
› D3.js
› WebStorm
推荐书目
› JavaScript 权威指南第 5 版
› Closure: The Definitive Guide
WytheHuang

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

  •  
  •   WytheHuang · Dec 28, 2016 · 5522 views
    This topic created in 3604 days ago, the information mentioned may be changed or developed.

    代码如下: (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 replies  •  2017-01-02 21:54:14 +08:00
    hxsf
    hxsf
    Dec 28, 2016 via iPhone
    1
    手机阅读。没啥格式化工具。

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

    关键字
    箭头函数 立即执行函数
    exoticknight
    exoticknight
    Dec 29, 2016
    2
    去看看 Y Combinator ,然后应该就懂了……
    xcatliu
    xcatliu
    Dec 29, 2016
    3
    不知道把代码写成这样有什么意义
    alexsunxl
    alexsunxl
    Dec 29, 2016
    4
    作用就跟一楼说那样了, 获得 dom 树最大深度
    其实执行一下就知道了, 一般这种就是从右往左边看
    附图
    lijsh
    lijsh
    Dec 29, 2016
    5
    美化一下:
    (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 传进来。
    lijsh
    lijsh
    Dec 29, 2016
    6
    本想美化一下,没想到排版还是瞎眼…
    yidinghe
    yidinghe
    PRO
    Dec 29, 2016
    7
    试下 markdown

    ```
    function(abc) {
    alert("Hello!");
    }
    ```
    apoclast
    apoclast
    Dec 29, 2016
    8
    注意力从前端挪走几年了. 现在浏览器支持的 javascript 引擎是什么版本? 什么样的浏览器能支持这种函数式的 js 语法?
    se77en
    se77en
    Dec 29, 2016
    9
    @apoclast 主要的浏览器现在都支持了,而且 ES6 规范里规定了 tail call optimization
    kopp123
    kopp123
    Dec 29, 2016
    10
    这还算鬼畜。这才叫鬼畜
    [][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]][([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]]((![]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]+(!![]+[])[+[]]+(![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[!+[]+!+[]+[+[]]]+[+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[!+[]+!+[]+[+[]]])()
    lslqtz
    lslqtz
    Dec 29, 2016
    11
    @kopp123 居然真的能执行哈哈哈哈哈哈哈
    mentalidade
    mentalidade
    Dec 29, 2016
    12
    @kopp123 可怕,试了下真可以
    KIDJourney
    KIDJourney
    Dec 29, 2016 via Android
    13
    jsfuck
    Damn
    Damn
    Dec 29, 2016 via Android
    14
    @kopp123 卧槽,神马原理。。
    palmers
    palmers
    Jan 2, 2017
    15
    箭头函数没有原函数语法清晰 我觉得
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   931 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 50ms · UTC 21:20 · PVG 05:20 · LAX 13:20 · JFK 16:20
    ♥ Do have faith in what you're doing.