据说只有 TOP 3%的前端工程师可以在一天内做完这些 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
nowcoder
V2EX    程序员

据说只有 TOP 3%的前端工程师可以在一天内做完这些

  •  
  •   nowcoder 2015-06-15 09:56:17 +08:00 11006 次点击
    这是一个创建于 3774 天前的主题,其中的信息可能已经有所发展或是发生改变。

    你们这些后端总是说前端开发简单,你行你上

    http://www.nowcoder.com/ta/front-end

    专为前端开发的在线判题系统,欢迎挑战,2小时内可以通关的请加群462688309

    PS:恳请大家不要提交恶意代码黑我们的在线运行系统 :-)

    第 1 条附言    2015-06-15 11:00:54 +08:00
    有朋友留言说这套题目简单,这都是程序员错觉,大家实际编个代码就知道其实没你想的这么容易
    第 2 条附言    2015-06-16 09:22:13 +08:00
    从昨天提交和通关的数据来看,3%一点都不标题党。祝大家玩的愉快。我们接下来会出更多的题目,如果有兴趣兼职出题目(每题报酬100-500元)请加入我们的QQ群462688309找群主
    82 条回复    2015-07-11 23:27:50 +08:00
    Xingbao
        1
    Xingbao  
       2015-06-15 10:00:58 +08:00
    PS:恳请大家不要提交恶意代码黑我们的在线运行系统 :-)

    嘿嘿嘿,为什么看到这一句有种忍不住的冲动内。。
    est
        2
    est  
       2015-06-15 10:01:40 +08:00   1
    v2ex 软文水平越来越高了。
    nowcoder
        3
    nowcoder  
    OP
       2015-06-15 10:02:25 +08:00
    @Xingbao 上周在论坛看到有被黑的在线运行系统 -。- 担忧。。
    yxzblue
        4
    yxzblue  
       2015-06-15 10:06:29 +08:00
    @est 这反话说得
    LintCode
        5
    LintCode  
       2015-06-15 10:07:54 +08:00
    @nowcoder 有想试试看的冲动
    nowcoder
        6
    nowcoder  
    OP
       2015-06-15 10:12:45 +08:00
    @LintCode 这是LintCode官号吗,orz
    huanghuaxin
        7
    huanghuaxin  
       2015-06-15 10:14:14 +08:00
    已通关…

    好像很少有网站提供前端在线判题,感觉棒棒哒…

    ZackYang
        8
    ZackYang  
       2015-06-15 10:17:04 +08:00
    这软文很专业.
    ctsed
        9
    ctsed  
       2015-06-15 10:36:33 +08:00
    这标题写的简直侮辱人,我略懂js都能写出来。@ninechapter 来一贴干翻他
    a819721810
        10
    a819721810  
       2015-06-15 10:43:08 +08:00 via Android
    PHP不服
    nowcoder
        11
    nowcoder  
    OP
       2015-06-15 10:43:34 +08:00
    @ctsed 涉及到js特性的略懂就写不出来了。
    a819721810
        12
    a819721810  
       2015-06-15 10:49:00 +08:00 via Android
    我大PHP的人民呢
    ctsed
        13
    ctsed  
       2015-06-15 10:51:25 +08:00
    @nowcoder 大部分是js基础操作,1天时间,只有3%,等于骂97%都是渣渣,你这软文水平真高。
    nowcoder
        14
    nowcoder  
    OP
       2015-06-15 10:57:27 +08:00
    @ctsed 哈哈,你没接触那些培训结构出来的前端开发。 这套题目根本没你想的这么简单。 就简单说斐波那契数列,卡你递归实现就能过滤掉40%
    nowcoder
        15
    nowcoder  
    OP
       2015-06-15 10:58:30 +08:00
    @ctsed 还有时间格式化,你要考虑各种状态,以及邮箱正则匹配都是看起来简单,网上抄抄好像就搞定,自己实际谢谢就知道有多难了。
    Xingbao
        16
    Xingbao  
       2015-06-15 10:59:38 +08:00
    楼主好腻害的样纸。。
    ctsed
        17
    ctsed  
       2015-06-15 11:05:49 +08:00
    @Xingbao 是啊,人家是那3%专业人士。哪是连培训班都没上过的人能比的。
    101
        18
    101  
       2015-06-15 11:12:34 +08:00
    斐波那契数列学生都能搞定,还拿这说事,笑死了,我发现无论股市还是开发,让人加群的都可以拉黑了
    beimenjun
        19
    beimenjun  
    PRO
       2015-06-15 11:16:29 +08:00   2
    参与人数6,通过率5.88%,贵网站的人数看来是可以无限分割。
    yasonyyx
        20
    yasonyyx  
       2015-06-15 11:19:37 +08:00
    这个一天,应该是刨除了上班+加班+来回交通+吃喝拉撒+无所事事之后的一天吧。。。让我算算还剩多少时间先
    ctsed
        21
    ctsed  
       2015-06-15 11:19:42 +08:00
    @beimenjun 3个人通过率20%,数据造假,哈哈,心好细。
    nowcoder
        22
    nowcoder  
    OP
       2015-06-15 11:26:30 +08:00
    @ctsed 这是根据提交次数/通过的次数来计算的,不是根据提交人数比例。 牛客网所有数据不会有假,我们也从不刷数据。
    zonghua
        23
    zonghua  
       2015-06-15 11:35:07 +08:00
    我还以为是做这些题目呢,斐波那契数我都不懂。
    ihciah
        24
    ihciah  
       2015-06-15 11:53:25 +08:00
    要不要来点js黑魔法
    otakustay
        25
    otakustay  
       2015-06-15 11:53:47 +08:00
    不在本地调试完再复制过去的话,我没办法保证100%通过率,打打字出错都能fail几次T__T
    nowcoder
        26
    nowcoder  
    OP
       2015-06-15 12:02:07 +08:00
    @otakustay 厉害,已经通过8题了。 刷完9题请在群里说下,我们送T恤一件。感谢支持牛客。
    otakustay
        27
    otakustay  
       2015-06-15 12:03:12 +08:00
    @nowcoder 时间格式化那个我刷不过去OTL有地方能看具体的test case么,因为我用的方法是我们项目里在用的且一直没出错的,当然因为我们项目里的输出不会遇到非常边界的情况就是了……
    nowcoder
        28
    nowcoder  
    OP
       2015-06-15 12:06:51 +08:00
    @otakustay testcase下个版本会开放~,你今天刷不过,我晚上迟点再看你的代码错哪里。
    zzNucker
        29
    zzNucker  
       2015-06-15 12:11:25 +08:00
    - - 楼上纠结通过率数据的一看就是没用过OJ 。。。。 太搞笑了233
    otakustay
        30
    otakustay  
       2015-06-15 12:19:05 +08:00   1
    @nowcoder 对我来说题本身都没难度,思路都是比较纯正的。不过日期格式化我是不大建议作为前端的题的,本身和前端并不是强关联,更推荐作为一种普遍的逻辑题来考

    另外我觉得你们的test case应该不全的,不然光url参数那个还能fail更多的人,比如说:

    1. URL中有问号但后面没任何参数
    2. URL中根本没有问题
    3. 参数没有encodeURIComponent,比如在参数里还出现了问号
    4. 参数有key没有value

    等等,你看我的代码,我故意就没对key和value做decodeURIComponent想看看你们会怎么样,竟然通过了……
    iyaozhen
        31
    iyaozhen  
       2015-06-15 12:27:19 +08:00
    突然发现你们网站的标题栏很有意思。(●●)
    dangge
        32
    dangge  
       2015-06-15 12:29:02 +08:00
    斐波那契数列这种都能算...
    而且通过率连OJ都不如
    nowcoder
        33
    nowcoder  
    OP
       2015-06-15 12:41:39 +08:00
    @otakustay 感谢! 这个测试用例我们的确没有考虑这么边界。
    nowcoder
        34
    nowcoder  
    OP
       2015-06-15 12:42:22 +08:00
    @dangge 前端的同学估计还没适应OJ模式。
    darmody
        35
    darmody  
       2015-06-15 13:00:06 +08:00
    斐波那契我不信。。
    rainday
        36
    rainday  
       2015-06-15 13:03:44 +08:00
    @armody 这种题目也就算基础逻辑题
    hheedat
        37
    hheedat  
       2015-06-15 13:35:37 +08:00
    别逗了
    zythum
        38
    zythum  
       2015-06-15 13:39:21 +08:00
    很多都是字符串计算。属于逻辑题吧。什么工程师都一样吧。
    adspe
        39
    adspe  
       2015-06-15 13:40:35 +08:00
    这不都是基本功吗~
    mcone
        40
    mcone  
       2015-06-15 13:58:15 +08:00
    这个ID好像也是专业软文推广ID啊,已送走再见

    这种拉仇恨的帖子最low了
    XadillaX
        41
    XadillaX  
       2015-06-15 14:13:22 +08:00   1
    看见 DOM 操作的就不想做了,毕竟我不是前端。
    wdlth
        42
    wdlth  
       2015-06-15 14:17:03 +08:00
    用JS写斐波那契数列,你们真有想法……
    otakustay
        43
    otakustay  
       2015-06-15 14:23:01 +08:00   5
    真正考前端的题应该是这样的:

    ----

    使用Javascript实现一个固定元素的拖拽效果,要求函数符合以下签名:

    ```Javascript
    /**
    * @param {HTMLElement} element 需要提供拖拽功能的元素
    */
    function draggable(element) {
    }
    ```

    `element`符合以下前提:

    - 在`<body>`元素之下,且不在其它元素内(作为`<body>`的直接子元素)
    - 含有未知的子元素或内容,但大小不超过可视范围

    在执行该方法后,`element`将具备以下功能:

    - 按下鼠标后可开始拖动,放开鼠标时拖动结束
    - 可以在当前浏览器可视区域区域内任意拖动
    - 在拖动过程中,原元素`element`保持位置不变,使用一个透明度为0.4、视觉效果与`element`一致的元素跟随鼠标
    - 拖动完毕后,原元素移至最终放开鼠标的位置,移动过程无需动画

    ### 知识点

    1. 基本DOM操作
    2. HTML drag & drop
    3. CSS属性性能
    4. 用户体验优化

    ### 关键细节

    - 使用`cloneNode`并设置样式(添加特殊`lass`更好)实现跟随鼠标的元素
    - 如果使用HTML drag & drop实现,需要使用`e.transfer.setDragImage`实现跟随鼠标的元素
    - 不使用HTML drag & drop时,使用`translate-3d`性能优于`translate`,`translate`优于`left / top`
    - 原始位置的计算需要使用`getBoundingClientRect`、`scrollTop`、`scrollLeft`等属性
    - 如果使用`translate`同步位置的话,要考虑原始已有`translate`的影响
    - 对于跟随鼠标的元素,需要主动设置`position: absolute`
    - `mousemove`和`mouseup`需要绑定在`documentElement`上
    - 需要在`mousedown`时计算位置,`mousemove`时计算偏移量才可实现准确跟随,不能仅计算`mousemove`时的鼠标位置
    - 出于用户体验考虑,可在移动若干像素(或鼠标按下若干毫秒)后才开始拖拽效果
    - 拖拽结束后`element`移动位置为跟随鼠标的元素的位置,而非鼠标本身的位置
    fzinfz
        44
    fzinfz  
       2015-06-15 14:29:11 +08:00 via iPad   1
    歪个楼,有到http://www.codewars.com 上练级的v友么?
    rainday
        45
    rainday  
       2015-06-15 14:31:22 +08:00
    @otakustay 大神,我是牛客网负责人,请加我QQ77963306
    jianghu52
        46
    jianghu52  
       2015-06-15 14:34:06 +08:00
    我连题目都不懂,是不是太low了。包名是什么东西。完全不懂。
    huanghuaxin
        47
    huanghuaxin  
       2015-06-15 14:51:49 +08:00
    @otakustay
    这种题目只能存在于真实项目中吧,拖动这种交互复杂的功能,实现的方式千千万,当成在线的前端编程题,测试用例都可能覆盖不了…

    我觉得好的前端题,应该只考核单一知识点,通过多个知识点的代码可以大致估算出用户的水平,而不是通过一道大而全的题目去考查…
    otakustay
        48
    otakustay  
       2015-06-15 14:59:07 +08:00
    @huanghuaxin 考题有2种,一种是单一知识点看掌握如何,一种是综合性看整体思路和经验积累的,比如上面这题

    这种题不会要求你结果是正确的,我们是看代码来了解你基本的思路是对的,能看到多少细节反映你以前踩过多少坑,随后会提几个你没注意到的细节,看你解决的思路是怎么样的来判断你是否能填坑

    所以测试用例其实是不用的,因为这题追求的结果并不是“正确”……
    lvfujun
        49
    lvfujun  
       2015-06-15 15:49:18 +08:00
    @nowcoder 这个时间限制3秒指的是程序运行时间还是写代码的时间.
    nowcoder
        50
    nowcoder  
    OP
       2015-06-15 16:24:36 +08:00
    @lvfujun 代码运行的时间。 你写个while(true)就会超时
    TakanashiAzusa
        51
    TakanashiAzusa  
       2015-06-15 16:49:59 +08:00
    太标题党了吧。费波纳茨那个才几行代码- -这种是最基础的算法了。虽然我是切图仔,但你不能这么黑我智商。。
    nowcoder
        52
    nowcoder  
    OP
       2015-06-15 16:51:04 +08:00
    @TakanashiAzusa 不要挑最简单的来说啦。:-)
    bdbai
        53
    bdbai  
       2015-06-15 19:30:15 +08:00 via iPhone
    @nowcoder 自从听到老师让我们用递归写 吓哭了
    baiyemao
        54
    baiyemao  
       2015-06-15 19:38:22 +08:00
    怎么又是这个牛客网,真是够了
    jokcy
        55
    jokcy  
       2015-06-15 22:08:14 +08:00
    ```
    Array.prototype.uniq = function () {
    var obj = {}, i = 0;
    while(i<this.length) {
    if (obj[this[i]]) {
    this.splice(i, 1);
    } else {
    obj[this[i]] = true;
    i++;
    }
    }
    return this;
    }
    ```
    去重那个我这么写有什么问题么?或者可以公布一下你们的测试用例么?我想看一下错哪了?
    nowcoder
        56
    nowcoder  
    OP
       2015-06-15 23:47:10 +08:00
    @jokcy [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, '1'] 这个case看看
    lujiajing1126
        57
    lujiajing1126  
       2015-06-16 01:05:50 +08:00
    @jokcy
    @nowcoder
    既然可以用库那就耍一下赖,先用_.union合并,然后判断一下NaN(underscore用得熟不熟)
    因为NaN和任何比都是false,所以NaN是可能被重复的(这是重点)
    不知道这个算不算underscore的bug了
    lujiajing1126
        58
    lujiajing1126  
       2015-06-16 01:11:13 +08:00
    @nowcoder so是你们的版本低了- -新版underscore已经修复NaN比较的edge测试用例
    lujiajing1126
        59
    lujiajing1126  
       2015-06-16 01:17:56 +08:00
    总算都过了= =好蛋疼
    secondwtq
        60
    secondwtq  
       2015-06-16 02:50:48 +08:00
    这貌似并不能完全算是 “前端” 的内容,感觉大多数都是 JS 的一些知识点,逻辑和简单的算法。貌似有一道涉及到了 DOM。而一些 exactly “前端” 的东西,比如 @otakustay 在 43L 说的,做类似 OJ 的自动评测,有难度。

    另外 LeetCode 一段时间前是支持了 JS 的,纯 JS。顺便如果注意了资源使用上限的问题的话,我并不认为纯粹 JS 这种轻量(V8 之类的动静搞得这么大是因为死命往里面加各种优化特技)又和系统底层没啥耦合的东西能把服务器搞出什么问题来。如果直接用 Node 跑那就另说了。
    icedx
        61
    icedx  
       2015-06-16 08:54:51 +08:00 via Android   1
    这营销不好 我一个后端工程师 10分钟就搞完了
    undeflife
        62
    undeflife  
       2015-06-16 08:56:08 +08:00
    难道是我想多了?第一题不是考的lca?我觉得挺难的...
    nowcoder
        63
    nowcoder  
    OP
       2015-06-16 09:13:43 +08:00
    @lujiajing1126 用库是真没什么难度了。 这个库我们会出新的题目的。
    nowcoder
        64
    nowcoder  
    OP
       2015-06-16 09:16:08 +08:00
    @secondwtq js的确很难破坏判题系统,毕竟它只是跑在浏览器的沙盒里的。 ‘前端’一些的题目需要css,html,js结合起来,我们可以做到,不过的确如@otakustay说的,太复杂的题目没法自动化oj判定。现在可以做到的是只要是可以单元测试的功能,都可以用oj来做。
    nowcoder
        65
    nowcoder  
    OP
       2015-06-16 09:16:22 +08:00
    @undeflife 是的。
    Dongdong36
        66
    Dongdong36  
       2015-06-16 09:34:49 +08:00
    @fzinfz 刷python来着,很不错的网站
    jadecoder
        67
    jadecoder  
       2015-06-16 09:50:53 +08:00
    @fzinfz 好久没玩了,练到过6kyu
    ctsed
        68
    ctsed  
       2015-06-16 09:51:09 +08:00
    “ TOP 3% 的前端工程师”
    “后端总是说前端开发简单,你行你上”
    “3% 一点都不标题党”

    不愧是3%的高贵人士。这营销做的,见一次喷一次。
    nowcoder
        69
    nowcoder  
    OP
       2015-06-16 09:58:00 +08:00
    @ctsed 数据说话,没什么好喷的吧。
    Biwood
        70
    Biwood  
       2015-06-16 10:08:30 +08:00
    我感觉楼上有些回复好啊,是不是水平渣的都不好意思留言啊,呵呵呵
    昨天我看到这帖子后,点进去试了下,第一题就把我卡住了,在这一个题上耗了几分钟,放弃了,就没继续玩了
    今天上班又看到这帖子,于是又进去试了下,终于搞定了第一题,呵呵,我承认我很渣,你们都是神
    ctsed
        71
    ctsed  
       2015-06-16 10:08:57 +08:00
    @nowcoder 自己挖个坑,让一群人跳,都跳过去了,就是牛逼前端。跳不过去的就是渣渣。

    标题里说是前端,主贴里覆盖内容又包括了其他人,回复里说了网站有点问题,某些情况会判错
    楼主就欣喜的为自己的 “TOP 3% 前端 + 一天 时间”才能过我们的题 这个观点找到了依据:我们有数据支撑


    都TOP 3%了还要一天时间。100%全黑了,营销水平真高
    ctsed
        72
    ctsed  
       2015-06-16 10:11:52 +08:00
    @Biwood “专为前端开发的在线判题系统”


    V2EX 的帖子的 URL 后面的 hash 有什么作用?
    每个月都会出现的那种主题 Biwood 71 天前 最后回复来自 Biwood


    是的。
    Biwood
        73
    Biwood  
       2015-06-16 10:14:28 +08:00
    @ctsed 你高兴就好 :-)
    huanghuaxin
        74
    huanghuaxin  
       2015-06-16 10:18:48 +08:00
    @ctsed

    额,直接5分钟做完,然后说自己不是 Top 3%,糊 @nowcoder 一脸不就行了么
    你高兴就好 :-)
    ctsed
        75
    ctsed  
       2015-06-16 10:20:37 +08:00
    @Biwood
    @huanghuaxin
    还有人帮这种傻逼营销贴说话 呵呵
    Biwood
        76
    Biwood  
       2015-06-16 10:32:42 +08:00
    @ctsed 并没有帮楼主说话,单纯的对里面的题目感兴趣,如果这个营销帖违规了,你可以直接向 @Livid 举报,没必要这样大呼小叫,谢谢理解 :-)
    Biwood
        77
    Biwood  
       2015-06-16 10:39:11 +08:00
    @huanghuaxin 上班休息的时候随便看看,所以没花太长时间,而且我并没有说自己是不是 Top3%,这个没意义
    humaorongrong
        78
    humaorongrong  
       2015-06-16 10:47:26 +08:00
    一般都是遇到具的再Google/baidu搜索代,的感意不大~
    nowcoder
        79
    nowcoder  
    OP
       2015-06-16 11:31:05 +08:00
    @ctsed 少说多做,感谢支持牛客。
    hbkdsm
        80
    hbkdsm  
       2015-06-16 16:38:46 +08:00
    @fzinfz 我 4kyu, Javascript
    ctsed
        81
    ctsed  
       2015-06-19 01:53:20 +08:00
    @nowcoder 是啊,你们可得少说多做。感谢尊重渣渣。:)
    tushiner
        82
    tushiner  
       2015-07-11 23:27:50 +08:00
    支持牛客
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     4959 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 04:00 PVG 12:00 LAX 21:00 JFK 00:00
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86