V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
andy1987
V2EX  ›  程序员

发现一面试者熟悉 jquery, prototypejs 操作 ajax,但是却不会写原生的 ajax

  •  
  •   andy1987 · 2015-06-09 09:08:40 +08:00 · 17181 次点击
    这是一个创建于 3237 天前的主题,其中的信息可能已经有所发展或是发生改变。
    对jquery,prototypejs很熟悉,能熟练操作,但是用原生的js来完成个ajax请求,却发现写不出来了,见到这种情况,面试官的你们多半会怎么处理? 反正我是醉了
    第 1 条附言  ·  2015-06-09 10:14:16 +08:00
    看到不少回复,发现好像被误会了不少了,这里楼主做点补充说明好了. 我对用原生js写ajax其实要求没那么难的,只是简单的模拟出来就可以了,所有这要求应该不算高了哈。其次:
    1. 追求原生,基于某些项目的的需要
    2. 追求原生,因为我们希望招的人不只是只会写代码的工具,过分的依赖第三方类库,在我们公司并不是很提倡,当然你可以去参考甚至勾出别人优秀的代码,自己封装,我们是很欢迎的,呵呵:)

    ps: 其实主题只是想说,我们需要会jquery ajax操作的人,但是我们更需要你了解jquery ajax后面发生的事情,这样当没有jquery的环境下,你可以更好的处理ajax,个人觉得这种要求不算很高的,:)
    第 2 条附言  ·  2015-06-09 10:53:32 +08:00
    觉得回复提到汇编,提到网络协议的,有点扯远了。
    ps: 一个熟练jquery ajax 的人,但是却连XmlHttpRequest都不知道,让你简单描述下用xmlhttprequest 来完成ajax的基本流程都不知道的人,这样人如果换成你们是面试官,你们是公司的技术manager,你们敢要吗? 我个人坚决是不会要
    第 3 条附言  ·  2015-06-09 10:58:30 +08:00
    看了zhs227回复,可能是被大家误解了,所以这里说明下我们招的对象人群,一面大家在一群误了:

    我们招的对象是前端和js工程师,所以原生js书写技能就在我们的考核范围了
    第 4 条附言  ·  2015-06-09 21:50:45 +08:00
    看到这么多人评论,有理解和不理解,所以楼主我还是决定做最后APPEND个。希望这个主题就此沉掉。

    首先我承认我没有很好的表述我表达的内容,自我感觉别人能理解我所表达的,但是事实是错误,包括后面的一个个append依然被深深的误会着。

    我的发表这篇的主题初衷很简单,只是说明一种现在招人中很普遍的一个现象
    从面试者角度来说,你或许觉得我的问题是没有意义或者太过于肤浅,甚至不屑,当然我还碰到过一个面试者在笔试时候既然告诉HR题目太简单的不做。不管出于那种原因,这都是你个人的观点和主见,作为一名面试官,我需要考虑到产品的技术需要和团队的技术人才需要,我是代表公司在招人而不是代表你个人来面试你自己。

    很多人因为主题扯到很远的地方,什么汇编都出来了,你们觉得有意思吗? 我的主题在于表达一种现象而这种现象如果你是面试官或者你做过面试官,我相信你多少会了解,我不针对任何人群,因为我曾经也是面试者,我也做过最简单的js题目。

    不少评论者提到用原生js写ajax很麻烦,各种坑,我也知道,所以在实际产品开发中我也不可能让你选择用这种原生的写法的,但是这个问题我问了,我的问题不在你会不会写,但是如果一个连jquery ajax 背后发生的原理都不知道的人,我坚决不会要,更何况如果你是个用这个技术干的多年的人。

    好了,楼主不愿去解释太多了,能理解的人还是会理解的,不理解的人还是会继续喷的、
    第 5 条附言  ·  2015-06-09 21:52:39 +08:00
    ps: 我希望大家能跳出ajax ,xmlhttprequest这个框子去看待我的主题,我的主题并不是想跟你表述什么会用jquery ajax和xmlhttprequest技术的问题,我想表达的是一种现象
    184 条回复    2015-06-18 07:33:09 +08:00
    1  2  
    yangqi
        1
    yangqi  
       2015-06-09 09:11:21 +08:00
    挺正常的吧,如果不是前端的会这些框架就足够了吧
    yahoo21cn
        2
    yahoo21cn  
       2015-06-09 09:12:18 +08:00
    对,你让他直接写汇编,肯定更不会
    forest520
        3
    forest520  
       2015-06-09 09:12:55 +08:00
    这种知识性的东西,google一下就会了,真不是什么问题
    FrankFang128
        4
    FrankFang128  
       2015-06-09 09:13:33 +08:00 via Android
    我也写不出,两年没用过了大概,不过我知道 ajax post get 所有参数在 request 里面对应的东西。
    justfindu
        5
    justfindu  
       2015-06-09 09:13:50 +08:00
    会写原生的加分 不会写的也不扣分
    FrankFang128
        6
    FrankFang128  
       2015-06-09 09:14:24 +08:00 via Android
    同意3楼,问点如何解决问题之类的题目比较好
    sarices
        7
    sarices  
       2015-06-09 09:15:05 +08:00
    每一次要写原生都要去查一遍api
    lwbjing
        8
    lwbjing  
       2015-06-09 09:16:53 +08:00
    我只记得大概,让我仔细写出来还真写不出来。。orz..
    iamxi
        9
    iamxi  
       2015-06-09 09:17:14 +08:00
    用jquery写ajax多方便,代码结构清晰,必用原生的写简介。要解决问题,自然效果越好,越简单的。哪天要用原生的,直接谷歌之。
    linescape
        10
    linescape  
       2015-06-09 09:19:14 +08:00   ❤️ 1
    1100001010100101110101101111011111001001101101011011000111000110
    我这回复够原生了吧
    sivacohan
        11
    sivacohan  
       2015-06-09 09:19:39 +08:00 via Android
    来,背一下元素周期表。
    这么基础的知识都不会还敢说自己读过书?

    面试的时候注意不要问这些知识性的东西。最多问一下Ajax的实现。就xmlhttprequest 就足够了。
    hj2002007
        12
    hj2002007  
       2015-06-09 09:24:31 +08:00
    原生ajax 很多年前 我不知道jquery时候 我写过 写的欲仙欲死 然后我知道了jquery 然后 就再也没有用ajax了 时间这么宝贵啊
    Hyperion
        13
    Hyperion  
       2015-06-09 09:27:50 +08:00 via Android
    原生,就算原生我也会找个类来用...

    先不吐槽各浏览器兼容大坑,就是这收到数据后判断类型,处理异常,起码2屏代码。

    我一直觉得,如果不是特别必要,不用轮子有毛病啊...
    airyland
        14
    airyland  
       2015-06-09 09:28:37 +08:00
    我其实也写不出来。但是google一下应该不用半分钟就解决了,比手写还快。
    ieiayaobb
        15
    ieiayaobb  
       2015-06-09 09:31:35 +08:00
    写不出来,遇到面试官这么问我应该也会醉了
    Xrong
        16
    Xrong  
       2015-06-09 09:31:46 +08:00
    这个一点问题都没有
    lguan
        17
    lguan  
       2015-06-09 09:33:02 +08:00
    你要是在我项目里面用原生的写个AJAX,我保证抽你
    zhujinliang
        18
    zhujinliang  
       2015-06-09 09:34:50 +08:00
    会不会都不知道js有new这个关键字呢
    FrankFang128
        19
    FrankFang128  
       2015-06-09 09:39:00 +08:00 via Android
    @zhujinliang 我看见谁用就会劝他忘掉new
    lZl
        20
    lZl  
       2015-06-09 09:41:06 +08:00
    楼主会写一个原生ajax也不要有啥优越感,大家都是做工程的,不是搞研究的,目的都是致用!
    cheng007
        21
    cheng007  
       2015-06-09 09:55:27 +08:00
    他的工作方式应该是用到什么学什么吧。
    你给他点时间让他学,我觉着不会有问题。
    面试一个人,会考虑他现在可以做什么,还有他的学习能力
    我面试现在公司这份工作的时候,还不会js,不会node.js,两个礼拜后就会了写了。
    zhangshine
        22
    zhangshine  
       2015-06-09 09:56:12 +08:00
    这种了解一下就好了,然后欢快的用jQuery就好了,估计面试者遇到你也是醉了
    junyuecao
        23
    junyuecao  
       2015-06-09 09:58:06 +08:00
    核心原理知道XMLHttpRequest, 知道IE上的ActiveXObject, 知道挂各种事件,就差不多了
    fkccp
        24
    fkccp  
       2015-06-09 09:58:52 +08:00   ❤️ 1
    过一会就会出现《我就是那个不会写原生Ajax的面试者》的帖子……
    gilgamesh
        25
    gilgamesh  
       2015-06-09 09:59:02 +08:00 via Android
    挺好的,楼主三观被纠正过来了。
    Debiancc
        26
    Debiancc  
       2015-06-09 09:59:30 +08:00
    看到回复我就放心了
    andy1987
        27
    andy1987  
    OP
       2015-06-09 10:00:57 +08:00
    @lZl
    谢谢你的回复
    首先楼主我没有这种优越感,因为我大多数时间都是在用zepto来完成的我的ajax操作的:)。
    至于为什么在面试中考核,这跟我们公司某些项目要求有点关系。

    ps:个人认为会写代码的同时应该也要学会为什么是这样写。原生js写ajax并不算什么研究性的东西,个人也觉得不管是web开发还是js工程师如果连一些基本的原生js技能都没,类似ajax这样的都不会写,都不能处理好,大多数的技术只会依赖第三方,这种人我真心也不敢要
    griffinqiu
        28
    griffinqiu  
       2015-06-09 10:01:50 +08:00
    一个面试官对jquery(jQuery), prototypejs(Prototype), 对XMLHttpRequest也很熟悉, 却看不懂计算及执行汇编, 面试者的你们多半会怎么处理? 反正我是醉了

    1100001010100101110101101111011111001001101101011011000111000110
    andy1987
        29
    andy1987  
    OP
       2015-06-09 10:02:04 +08:00
    @yangqi
    确实,但是某些项目需要。在不能过分依赖第三方情况下就悲催了 :)
    junp
        30
    junp  
       2015-06-09 10:02:13 +08:00
    @junyuecao 对,了解原理就OK了。
    learnshare
        31
    learnshare  
       2015-06-09 10:03:10 +08:00
    不会写。

    原生 API 不太适合直接拿来做产品,必须有一层包装才好用。所以产品中最起码也是 jQuery。
    andy1987
        32
    andy1987  
    OP
       2015-06-09 10:03:15 +08:00
    @yahoo21cn

    :)
    楼主也不会,不过楼主觉得不会写没关系,至少知道为什么是这样 ;)
    ccbikai
        33
    ccbikai  
       2015-06-09 10:03:58 +08:00 via iPhone
    有些基础性的东西虽然都知道是啥,什么原理,但是要立马说出来却不容易。

    来,说一下TCP/IP七层模型
    banri
        34
    banri  
       2015-06-09 10:06:46 +08:00 via iPhone
    面试的时候被问了ajax的流程,说了xmlhttprequest,http状态码,ajax状态码,返回数据操作dom就可以了。

    其实让我写我也写不出,对着文档也能写。小项目用原生没啥问题啊,写了也比个库小。稍微大点的项目就得用库了,写原生就和梦游一样。。。
    banri
        35
    banri  
       2015-06-09 10:07:36 +08:00 via iPhone
    @ccbikai 经典面试题难道不是说下从敲网址到出页面的整个过程么!
    Septembers
        36
    Septembers  
       2015-06-09 10:09:23 +08:00
    @learnshare @banri 新规范的Fetch API拿来面试问还差不多
    see fetch.spec.whatwg.org
    m_z
        37
    m_z  
       2015-06-09 10:10:36 +08:00
    @andy1987 为什么是什么样? $.ajax() 吗?
    Septembers
        38
    Septembers  
       2015-06-09 10:11:02 +08:00
    @learnshare @banri 也许规范太新都不知道,然后死一片?
    banri
        39
    banri  
       2015-06-09 10:11:13 +08:00 via iPhone
    @Septembers 😭我是被面试的,我的面试官很nice,萌萌哒
    zhs227
        40
    zhs227  
       2015-06-09 10:14:00 +08:00
    如果允许面试者用Google或者其他参考资源,看看他10分钟能不能写出来。

    我觉得这种考验记忆力的东西不适合放在面试里面。
    learnshare
        41
    learnshare  
       2015-06-09 10:14:49 +08:00
    @Septembers 太新了,很少有人知道。在一个新技术被广泛应用之前,新人是无法了解到的。
    ccbikai
        42
    ccbikai  
       2015-06-09 10:16:27 +08:00 via iPhone
    @Septembers github还开源了一个兼容低版本的库
    andy1987
        43
    andy1987  
    OP
       2015-06-09 10:17:03 +08:00
    @iamxi

    不错,但是我们公司可能要求不同,我们希望和鼓励你使用优秀的第三方类库,但是你需要知道每次操作后面的发生了什么,这样才能更好的帮助我们改进
    herozzm
        44
    herozzm  
       2015-06-09 10:17:30 +08:00
    一切为技术业务为导向,何须死脑筋
    wolfan
        45
    wolfan  
       2015-06-09 10:17:41 +08:00 via Android
    刚好前天就写了个原生的。
    Septembers
        46
    Septembers  
       2015-06-09 10:17:59 +08:00
    zhangshine
        47
    zhangshine  
       2015-06-09 10:19:05 +08:00
    那你们应该找学习能力强的,而不是记忆力强的
    lyragosa
        48
    lyragosa  
       2015-06-09 10:19:31 +08:00
    别说原生ajax了

    我连原生js都快忘光了……只剩下getElementById了……
    binux
        49
    binux  
       2015-06-09 10:21:09 +08:00
    @ccbikai TCP/IP 并没有完整实现七层。。装逼失败
    andy1987
        50
    andy1987  
    OP
       2015-06-09 10:22:36 +08:00
    @zhs227

    我不是很赞成仁兄的看法,ajax并不应该成为是记忆性的东西,我们面试也不很少写直接的代码,思路和流程是我们所关注了。
    你会jquery ajax而且做的非常的好,但是你连XMLhttprequest是什么都不知道的人,我们是不会要的。
    andy1987
        51
    andy1987  
    OP
       2015-06-09 10:24:30 +08:00
    Qlccks2
        52
    Qlccks2  
       2015-06-09 10:25:29 +08:00
    我觉得不会也没什么关系,这种看api应该都会用吧。
    andy1987
        53
    andy1987  
    OP
       2015-06-09 10:25:37 +08:00
    @lwbjing
    我们公司很少直接要求写出代码的,你的思路和流程是才是我们主要关注点 :)
    andy1987
        54
    andy1987  
    OP
       2015-06-09 10:25:53 +08:00
    @sarices
    :) 同上
    andy1987
        55
    andy1987  
    OP
       2015-06-09 10:28:02 +08:00
    @hj2002007

    nice
    我们一直都很鼓励使用优秀的第三方类库或者参考别人优秀的代码,但是我们也一直要求在熟悉别人同时要知道调用背后发生的事情,这样才能更好把控和该井程序
    falcon05
        56
    falcon05  
       2015-06-09 10:30:56 +08:00 via iPhone
    楼主考查角度刁钻,冒泡排序不来一个吗?
    andy1987
        57
    andy1987  
    OP
       2015-06-09 10:32:25 +08:00
    @cheng007
    熟悉+ 应用一门技术确实很快,了解每次应用,每次调用的背后发生的事情也很重要,这样才能更好帮你改进程序
    andy1987
        58
    andy1987  
    OP
       2015-06-09 10:32:58 +08:00
    andy1987
        59
    andy1987  
    OP
       2015-06-09 10:33:10 +08:00
    zhs227
        60
    zhs227  
       2015-06-09 10:33:15 +08:00
    @andy1987 你是老板,规则当然是你定。只要怎样对自己公司的业务有帮助。

    我05年写过原生Ajax的聊天室,但是那个时候IE不叫这个名字。叫做一个什么COM。现在让我写我也写不出来。不知道属不属于楼主说的哪种醉了的人。

    我想每个面试官也有自己所不知道的东西,每个人学习东西的出发点不一样,有些你认为基本的东西别人不会也很正常。

    原生这个不需要太多的时间学会,找个学习能力强的,你要什么他学什么就好了。
    yoa1q7y
        61
    yoa1q7y  
       2015-06-09 10:34:11 +08:00   ❤️ 1
    看了回复,吐槽楼主的绝大部分应该不是做前端的,或者说不是一个合格的前端

    原生的写法在工作中是用不到的,但是一个好的前端对这个绝对应该要熟悉的

    熟不熟悉原生,能看出一个人对前端的追求,对js的理解深度,对自己知识的自信。在项目中解决问题的时候才能更加游刃有余,当出现一个问题的时候,熟悉原生能够直接看到问题的本质,然后给出直截了当的解决方案

    只会用点jQuery永远也得不到进步,这也是目前出现前端饥荒的原因,大部分都以为会几个框架就无所不能了,一些底层的知识稍微问下就不知道了
    andy1987
        62
    andy1987  
    OP
       2015-06-09 10:34:15 +08:00
    @learnshare
    可以不用,但是还是要了解了,了解后面发生的事情才能更好的帮助你改进你的程序,这是我个人认为的
    ccbikai
        63
    ccbikai  
       2015-06-09 10:36:23 +08:00 via iPhone
    @binux 我是被提问的
    yoa1q7y
        64
    yoa1q7y  
       2015-06-09 10:36:33 +08:00
    另外,扯到汇编的人就有点抬杠的意思了
    Septembers
        65
    Septembers  
       2015-06-09 10:37:09 +08:00
    @yoa1q7y 我个人觉得一位 合格的前端 起码是读过HTML Spec、CSS Spec、ECMAScript Spec的
    andy1987
        66
    andy1987  
    OP
       2015-06-09 10:37:11 +08:00
    @griffinqiu
    有点偏题了
    熟悉jquery,prototypejs 的ajax加上了解xmlHttpRequest这就够了,我们又怎么会为难面试者去了解汇编啥的东西呢,这也不是我们项目所需要的

    这就好比:你知道TerminateProcess来结束进程的,但是我们也希望你知道它的最后的操作是又PspTerminaterProcess,PspTermianterThread来完成了~
    :)
    andy1987
        67
    andy1987  
    OP
       2015-06-09 10:38:30 +08:00
    @yoa1q7y
    我也对那些提到汇编的人不解
    binux
        68
    binux  
       2015-06-09 10:39:07 +08:00
    @ccbikai 那就是人家在看你知不知道, TCP/IP 并没有七层。
    andy1987
        69
    andy1987  
    OP
       2015-06-09 10:39:12 +08:00
    @yoa1q7y
    nice
    zhyu
        70
    zhyu  
       2015-06-09 10:40:17 +08:00
    @ccbikai TCP/IP 不是七层。。七层那是OSI
    andy1987
        71
    andy1987  
    OP
       2015-06-09 10:41:28 +08:00
    @banri
    很多面试都不会让你直接写的,知道xmlhttprequest,又知道基本的处理流程,这就足够了,如果在提过多的要求,那估计就是这面试官压根就不想招人 了 :)
    yoa1q7y
        72
    yoa1q7y  
       2015-06-09 10:41:31 +08:00   ❤️ 1
    @Septembers 对的,有追求的人熟悉了原生之后,开始研究w3c标准,ECMAScript标准,甚至浏览器渲染引擎,内核之类的东西了,这对于提升前端的功底也有很大的帮助
    Lucius
        73
    Lucius  
       2015-06-09 10:46:09 +08:00
    @yoa1q7y
    @andy1987

    然而化学家去解化学题也没有高考状元来的溜..23333
    Septembers
        74
    Septembers  
       2015-06-09 10:46:52 +08:00
    @yoa1q7y 话说我个人觉得 前端 最大的坑是"未定义行为"
    see https://en.wikipedia.org/wiki/Undefined_behavior
    andy1987
        75
    andy1987  
    OP
       2015-06-09 10:46:56 +08:00
    @zhs227
    看来我被你深深的误会了 ::>_<::

    一般来说正常面试不会要求面试者去用原生js写出一个完整的ajax的操作的,你了解jquery,prototypejs的ajax,当然我们也希望你了解XmlHttpReuqest和XActiveObject(太老了) ,你能简单的描述通过xmlhttprequest来完成一个ajax的简单过程就够了。

    这样的要求对我们招人来说,我们不觉得在过分和在为难面试者,当然你可以这样认为。
    breeswish
        76
    breeswish  
       2015-06-09 10:47:54 +08:00
    @yoa1q7y 私以为知道 jQuery.ajax 底层用的是 XMLHttpRequest 应该足够了;至于会不会用 XMLHttpRequest 的各个接口这个应该和日常使用相关吧,原生用得多自然会熟悉,用得少即使以前会用那也会记忆模糊不清,在面试这种环境下难免会写不出来。考察是否知道 XMLHttpRequest 是在考察基础;考察是否会用 XMLHttpRequest 是在考察是否有此类经验..

    说来,为何不回答用 fetch API 呢 :-) 也是原生的
    zhs227
        77
    zhs227  
       2015-06-09 10:53:42 +08:00
    @andy1987 @yoa1q7y

    我觉得为什么很多人的发言偏向于觉得楼主有点奇怪呢?总结两点

    1. 楼主并没有说明找的是前端,我也觉得一个优秀的前端(或者说一个合格的)要了解是这么回事,至少知道有XMLHttp Request和几种返回状态什么的。 大部分参与讨论的不是前端,然而还是热情的参与了讨论,因为大家都写过Ajax。

    2. 楼主在顶楼中并没有说明是考察原理, 请参考原文“但是用原生的js来完成个ajax请求,却发现写不出来了”。如果是说完全没有听说过或者了解过,那是有点说不过去(对于前端职位来说)

    就事论事,我觉得顶楼的描述不够充分。不带恶意攻击楼主,但是楼主貌似误伤一大片
    andy1987
        78
    andy1987  
    OP
       2015-06-09 10:55:23 +08:00
    @breeswish
    确实,我们最担心的就是熟练jquery ajax的各种操作,但是连xmlhttprequest都没听过的人,更不要说面熟下ajax请求的处理过程了
    unknownservice
        79
    unknownservice  
       2015-06-09 10:59:22 +08:00
    讲原理就说讲原理,你说的是啥?写出来?我也醉了。。茴香豆的茴字有四种写法?
    xavierskip
        80
    xavierskip  
       2015-06-09 11:01:24 +08:00
    @lyragosa getElementById属于DOM操作,和原生js还是有点差距的。
    yoa1q7y
        81
    yoa1q7y  
       2015-06-09 11:04:42 +08:00
    @zhs227 好吧,是楼主没讲清楚,我说的前端工程师的要求^_^
    anubiskong
        82
    anubiskong  
       2015-06-09 11:05:11 +08:00   ❤️ 1
    给lz个建议, 别在面试的时候问能用搜索引擎轻松搜到的问题, 这样做非常low.
    就像我问你会用筷子吗? 你说会, 然后我让你用两根木棍为原料做出筷子来, 以证明你深刻的理解了筷子的用法.
    这种极少有人去做, 而每个人都能做得到的事情很难考察一个人的能力.
    你说需要懂ajax的底层原理, 懂了又有什么用呢? 你上次在实际项目中自己实现ajax是什么时候的事情了?
    我是这样面试的, 我随便挑了一个CSS的兼容性问题, 然后问他有没有遇到过, 他说有遇到, 我就问他解决方案, 如果没有遇到过, 我就问他你想怎么解决? 去搜索? 你用什么关键词搜? 没搜到/想自己尝试解决? 告诉我思路. 这样一步步追问, 直到对方把解决问题的思路全部暴露出来为止. 思路全暴露了, 就很容易看出这个人的经验,思维方式,知识面的层次甚至工作态度等等细节. 如果面试的房间有电脑, 我会让他现场解决一个bug, 我就坐在后面看着他搞, 一个bug就说明所有问题了
    jacob
        83
    jacob  
       2015-06-09 11:06:26 +08:00
    如果要写原生的,是不是要自己写个Promise啊,否则也没意义啊,自己写Promise我感觉这个太难了,
    jun4rui
        84
    jun4rui  
       2015-06-09 11:09:21 +08:00
    我觉得会jQuery就已经足够了,没必要写原生的,因为Javascript的原生就是一个超级巨大的坑,我看过jQuery的源码,里面很多很多的代码都是为了填坑,很多填坑的技术都匪夷所思开发者千万别以为了解这些有用,学这些完全是浪费时间。

    而且就jQuery和前端的意义来说,应该重点在功能的实现逻辑上,这种底层的玩意是今后语言级别应该填平的。
    jun4rui
        85
    jun4rui  
       2015-06-09 11:17:39 +08:00
    我再罗嗦一下,现在真的深入了解了前端js,会发现这玩意粗糙无比,规则混乱不堪,根本不值得投入生命去深入研究,有空多看看html5、新的js规范更好。愿意在这里面浪费生命的国内我也就知道司徒正美而已。
    Hyperion
        86
    Hyperion  
       2015-06-09 11:24:22 +08:00
    @jun4rui 司徒正美的qq群里有一堆哈哈哈哈

    不过,如果要做到不可替代,这个是没办法的。愿意去才坑才能写出框架。
    hussion
        87
    hussion  
       2015-06-09 11:26:18 +08:00
    只要能说清楚xmlhttprequest请求相关逻辑即可(包括onload,onerror,send,以及返回状态码等),主要是原理,不一定非要写出来,说真的,写出来也真的没啥技术含量。
    otakustay
        88
    otakustay  
       2015-06-09 11:29:07 +08:00
    虽然我也经常拿原生写ajax考人,但我真不认为写不出来代表了什么,倒是回答不出302和200的话就会很让我在意

    毕竟你也可以说“好多人会用c3p0写链接池但是让他用原生java写就不会”,类似的事情好多,为什么已经有这么成熟的封装我们就非得知道底下的实现呢……

    另外我作为一个团队的FE Leader,勉强会写原生XHR吧,不过你要我写XHR2上传文件我真不会,我还够格当Leader吗- -
    jun4rui
        89
    jun4rui  
       2015-06-09 11:35:58 +08:00
    @Hyperion 我还是3群的……
    Biwood
        90
    Biwood  
       2015-06-09 11:40:38 +08:00
    说实话我也不能保证用原生 JS 写一个完整的 ajax 操作,所以我认为自己水平确实很渣。
    楼上有很多说无所谓的,我觉得这种心态很不好,你们真的确定自己的技术已经可以了么?jQuery 就是语法糖,有些人已经沉浸其中不能自拔了。
    hj2002007
        91
    hj2002007  
       2015-06-09 11:43:19 +08:00
    @andy1987 是 不过很快需要快速开发的环境下 熟悉 第三方库 其实是有时间成本的 当然 如果是团队作战, 可以让其中一个人学习 然后教其他的人使用 有问题 就找那个人
    laoona
        92
    laoona  
       2015-06-09 11:44:57 +08:00
    追求原生,这是必然,对自身技术上的提升。
    碰到这样只会用第三方框架的同学,反正我是很介意的。
    jun4rui
        93
    jun4rui  
       2015-06-09 11:47:18 +08:00
    @Biwood 因为就Ajax这个技术来说,你平时基本不会用原生的,因为要抹平所有浏览器的兼容行和实现,要么自己封装一套,要么用很有用的jQuery等库封装好的,大家对原生的Ajax可以说没有长时间使用的机会,十有八九早忘了。

    至于深入研究JS,我自己正在学,非常痛苦,虽有有类的概念,但是问题非常多,你需要花费5倍左右的努力才能达到别的语言相应的效果,而这些效果对你日常工作而言可能毫无用处,甚至这些问题会在不久的将来通过语言本身改进掉,这样你学起来的成就感很少很少……

    我是真心劝想深入研究浏览器端JS的兄弟们,仔细想想。Nodejs那边还好,至少人家标准化程度高得多,规范更新坑少很多。
    Septembers
        94
    Septembers  
       2015-06-09 11:47:42 +08:00
    @otakustay
    写个 连接池 不是什么很难的问题但是写个 无锁连接池 也就不一样了
    (别忘记C3P0存在并发锁死的问题
    xylophone21
        95
    xylophone21  
       2015-06-09 11:48:11 +08:00
    个人觉得讲出原理还是需要的吧,至少说明这个人对技术没有好奇心,不求甚解。
    如果换一个问题,
    面试windows开发,只知道在VS里点build,不知道cl,nmake等,大家怎么看?减分不?
    面试Android应用开发,只知道在eclipse里点run,不知道aidl,dx,aapt等,大家这么看?减分不?

    至于最终要不要,这个不是看你们要人要的急不急决定的吗。
    j
        96
    j  
       2015-06-09 11:48:16 +08:00
    你先把jq代码丢给面试的人,源代码随便翻。然后你随便问呗,什么原生ajax之类的,你让他快速从jq代码里找出来不就行了。

    你考什么内容跟你招什么工程师那是两回事。就算你是js大牛,我现在让你不翻搜索引擎直接写个原生音乐播放器出来还不是一样卡死你。

    所以。。。。其实是面试的同学外貌不好,跟技术无关。
    arron
        97
    arron  
       2015-06-09 11:49:10 +08:00
    原生JavaScript中并不包含XMLHttpRequest。XMLHttpRequest只是浏览器提供的api,你要在node.js里根本见不着这个。所以要考原生JavaScript还是另外出题吧。
    j
        98
    j  
       2015-06-09 11:49:34 +08:00
    -。-,,, 借口,都是借口。

    追求原生,这是必然,对自身技术上的提升。
    碰到这样不会写第三方框架的同学,反正我是很介意的。
    lyd600lty
        99
    lyd600lty  
       2015-06-09 11:50:26 +08:00
    说的好像你会写机器码一样。。
    yoa1q7y
        100
    yoa1q7y  
       2015-06-09 11:52:42 +08:00
    @j 哎,这是不一样的,搜索跟掌握,这是两种境界,是质的变化
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5610 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 06:12 · PVG 14:12 · LAX 23:12 · JFK 02:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.