V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
madNeal
V2EX  ›  问与答

一人出一道前端面试题

  •  3
     
  •   madNeal · 2018-03-02 13:17:28 +08:00 · 3468 次点击
    这是一个创建于 2218 天前的主题,其中的信息可能已经有所发展或是发生改变。

    html, js, css, react, vue, webpack 等等,无任何限制, 任意发挥,可以自创,可以搜索,金三银四,可以准备一波。

    32 条回复    2018-03-03 15:28:11 +08:00
    madNeal
        1
    madNeal  
    OP
       2018-03-02 13:20:57 +08:00
    抛砖引玉一波 盒子模型有哪些 有什么区别
    newbieo0O
        2
    newbieo0O  
       2018-03-02 13:56:15 +08:00
    console.log(
    null == undefined,
    null === undefined,
    typeof null,
    typeof undefined,
    isNaN(null),
    isNaN(undefined),
    )
    ------------
    手写以上输出的 6 个结果
    madNeal
        3
    madNeal  
    OP
       2018-03-02 14:30:28 +08:00
    @newbieo0O `true false object undefined false true`
    以为 `isNaN(null)` 也是 `true`
    whypool
        4
    whypool  
       2018-03-02 14:33:02 +08:00
    设计一个前端路由高效命中规则?
    rabbbit
        5
    rabbbit  
       2018-03-02 14:34:55 +08:00
    true == 自动转换
    false === 不会自动转换
    object
    undefined
    后边俩不知道...
    lingo
        6
    lingo  
       2018-03-02 14:35:33 +08:00
    我怀疑这都是再收集面试题的。。。。

    我开玩笑的。。别打我。。。。
    ChefIsAwesome
        7
    ChefIsAwesome  
       2018-03-02 14:37:15 +08:00 via Android
    像之前有人发帖阿里面试的,先问盒模型,接着问算法。我真不知道能筛选出来怎样的前端。
    Exia
        8
    Exia  
       2018-03-02 14:37:46 +08:00
    @madNeal null 是 0 ?
    rabbbit
        9
    rabbbit  
       2018-03-02 14:41:21 +08:00   ❤️ 2
    function a(i){
    console.log(i);
    var i = 2;
    function i(){};
    console.log(i);
    }
    a(1);
    写出两个 console.log 的输出结果
    wukongkong
        10
    wukongkong  
       2018-03-02 14:47:39 +08:00 via Android
    @rabbbit 解释一下呢,第二个为什么是 undefined 呢
    madNeal
        11
    madNeal  
    OP
       2018-03-02 14:50:07 +08:00
    @Exia 我觉得应该是转换成了0
    swirling
        12
    swirling  
       2018-03-02 14:51:19 +08:00
    @wukongkong 那个 undefined 不是输出, 上面的才是第二个.
    madNeal
        13
    madNeal  
    OP
       2018-03-02 14:53:11 +08:00
    @wukongkong 并不是 undefined 啊,第一个是 f i(){} ,是因为声明提升把,第二个就是2啊
    Exia
        14
    Exia  
       2018-03-02 15:02:47 +08:00
    @madNeal 嗯,估计是浏览器自动转的吧。
    frankkai
        15
    frankkai  
       2018-03-02 15:03:43 +08:00
    说下[]==false 的输出结果和判断过程
    madNeal
        16
    madNeal  
    OP
       2018-03-02 15:04:29 +08:00
    @Exia 这也不叫 l 浏览器自动转的把 应该算 js 的类型推断把
    2010
        17
    2010  
       2018-03-02 15:05:15 +08:00 via Android
    none block 咋一起用🌚
    madNeal
        18
    madNeal  
    OP
       2018-03-02 15:06:07 +08:00
    @frankkai 是不是 [] => 0 => false ?
    Exia
        19
    Exia  
       2018-03-02 15:11:10 +08:00
    @madNeal 哦哦,是 isNaN( ) 这个方法把参数转的,这样理解应该对了。
    frankkai
        20
    frankkai  
       2018-03-02 15:11:43 +08:00
    rabbbit
        21
    rabbbit  
       2018-03-02 15:18:38 +08:00
    @wukongkong 第二个是 2 吧?
    实际执行顺序
    function a(i){
    function i(){};
    var i;
    console.log(i);
    var i = 2;
    console.log(i);
    }
    a(1);
    frankkai
        22
    frankkai  
       2018-03-02 15:20:30 +08:00
    @madNeal 崩了,提取出 url 看好了。其实这种问题是为了考察对 js 学习的深度的,回答在规范里看过就可以了,具体转换过程比较难记住的。
    rabbbit
        23
    rabbbit  
       2018-03-02 15:20:32 +08:00
    写错了
    var i = 2; => i = 2;
    grantonzhuang
        24
    grantonzhuang  
       2018-03-02 15:22:04 +08:00 via Android
    看完楼上的问题我一定是个假的前端
    heyOhayo
        25
    heyOhayo  
       2018-03-02 15:56:10 +08:00
    event loop, macro task 和 micro task
    GabrielChen
        26
    GabrielChen  
       2018-03-02 16:07:51 +08:00
    你一般如何 debug ?
    madNeal
        27
    madNeal  
    OP
       2018-03-02 16:09:56 +08:00
    @GabrielChen Chrome dev
    xwhxbg
        28
    xwhxbg  
       2018-03-02 16:13:23 +08:00
    怎么实现正则表达式?
    Acalpha
        29
    Acalpha  
       2018-03-02 16:18:18 +08:00
    Function.prototype.a = 'b';
    Object.prototype.a = 'c';
    function Person(){};
    var p = new Person();
    console.log('p.a: '+ p.a);
    mingyun
        30
    mingyun  
       2018-03-02 22:38:31 +08:00
    0.1+0.2 != 0.3 ?
    chenyang
        31
    chenyang  
       2018-03-03 11:31:36 +08:00
    @madNeal 以为 `isNaN(null)` 也是 `true` +1
    1OF7G
        32
    1OF7G  
       2018-03-03 15:28:11 +08:00
    var a = {n: 1};
    var b = a;
    a.x = a = {n: 2};

    console.log(a.x) // undefined
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5456 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 08:51 · PVG 16:51 · LAX 01:51 · JFK 04:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.