V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
xiaoming1992
V2EX  ›  前端开发

公司招聘前端,来的人让我头皮发麻

  •  
  •   xiaoming1992 · 2021-03-22 17:10:14 +08:00 · 1630 次点击
    这是一个创建于 1343 天前的主题,其中的信息可能已经有所发展或是发生改变。

    笔试第一题, ul 下面 5 个 li, 需要实现点击 li 时打印 li 的 data-content

    有看着不会下手的

    有解答如:

    let a1 = document.querySelector("ul li:first-child")
    a1.addEventListener(...)
    
    let a2 = document.querySelector("ul li:nth-of-type(2)")
    a2.addEventListener(...)
    
    // ...
    

    到公司面试的人, 答得最好的是下面这个:

    const list = document.querySelectorAll("li")
    for (let i of list) {
      i.addEventListener(...)
    }
    

    笔试题可以不动手写, 简单讲一讲思路就行, 一个 PascalCase to kebab-case 字符串转换函数(所有题目里难度次高的一道题), 有一位面试者没做, 我就简单问了问思路, 说到判断一个字符是不是大写字符, 其实平常肯定不会问这么 xx 的问题的, 但是我突发奇想, 就问了一嘴, "那怎么判断它是不是大写字符呢?", 然后他想了一会之后说, 这个问题我牵涉的比较少, 然后我就只能 "行, 那我们看下一题吧"...

    在这儿要跟一位不知名 V 友说声抱歉, 其实他远程笔试答得还是很好的, 但是因为一些其他客观原因, 被 hr 否了

    10 条回复    2021-04-08 18:08:35 +08:00
    ReputationZh
        1
    ReputationZh  
       2021-03-22 18:28:49 +08:00
    ……我也想知道在前端里,如何判断大写字母,难道用正则?
    pangbeilei
        2
    pangbeilei  
       2021-03-22 19:04:10 +08:00
    想知道被否的那位客观原因指的哪方面的?
    noe132
        3
    noe132  
       2021-03-22 20:51:32 +08:00 via Android
    @ReputationZh 正则[A-Z],判断 charcode,甚至可以直接 letter >= 'A' && letter <= 'Z'
    xiaoming1992
        4
    xiaoming1992  
    OP
       2021-03-23 12:22:52 +08:00 via Android
    @ReputationZh 其实在 replace 方法里使用正则 A-Z,根本不需要额外判断了,他说判断,我才问他怎么判断。可以获取 ascii 值判断范围,可以直接使用大于号小于号,甚至直接 [A, B, C,...].includes() 都算对

    @pangbeilei 我的问题,第一次发布招聘贴没经验,等那位兄弟发过简历,hr 跟他联系之后跟我说,外地的不太合适。我一方面没有考虑到会有外地的投,一方面没有考虑到公司会不喜欢外地的,所以感觉很抱歉
    aaniao002
        5
    aaniao002  
       2021-03-23 19:31:39 +08:00 via Android
    我觉得看公司吧,如果要招来自己培养,会简单的 javascript 就好,要厉害点的,可以试试 www.caniuse.com 上面抽几个常用 js function 和 css 考浏览器支持情况。再顶尖的请直接发设计稿。
    xiaoming1992
        6
    xiaoming1992  
    OP
       2021-03-23 22:39:56 +08:00
    @aaniao002 其实我们的要求已经一再降低了(毕竟薪资也不多。。。),只要基础的 js 过得去就行,可问题是来的一大半,连一句完整合法的 js 语法都写不出来,一个个经验都是两三年的。。。行,你这两年只用 vue,忘了 js 的语法,那你把他当成 vue,大致讲讲思路吧,思路也讲不出来。。。
    cyrbuzz
        7
    cyrbuzz  
       2021-03-24 16:19:14 +08:00
    ```
    const list = document.querySelectorAll("li")
    for (let i of list) {
    i.addEventListener(...)
    }
    ```
    这个有啥不好吗,除了没限定 ul?

    当然也可以给 ul 加事件判断冒泡的发起元素,这样只需要监听一次点击事件。
    xiaoming1992
        8
    xiaoming1992  
    OP
       2021-03-25 00:31:03 +08:00 via Android
    @cyrbuzz 肯定要搞一下事件委托啊。其实他们这样写,我都会问一句,"那如果我 li 很多,需要绑定很多次事件,能怎么样优化一下吗"。我感觉前端看到这样的题目,本能就会想到事件委托吧,难道我想错了?
    mayliya
        9
    mayliya  
       2021-03-27 14:06:46 +08:00
    我突然有点自信了
    KouShuiYu
        10
    KouShuiYu  
       2021-04-08 18:08:35 +08:00
    ```js
    document.querySelector('ul').addEventListener('click', (event)=>{
    console.log(event.target.innerText)
    });
    ```
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5154 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 01:22 · PVG 09:22 · LAX 17:22 · JFK 20:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.