出一道前端面试题,按这个标准在二三线城市招前端好招吗?

2021-03-11 14:39:24 +08:00
 HiCode

按下面文章的思路,写一个基于 svg 的 vue 组件,实现类似 gif 动画的效果,提供“播放、暂停、循环、跳转到指定帧”的功能。

http://www.joningram.co.uk/article/svg-smil-frame-animation/

不看学历不看经验,只看代码!

4647 次点击
所在节点    JavaScript
49 条回复
jones2000
2021-03-11 16:19:15 +08:00
还好吧, 就贴贴图什么的。打斗的就麻烦了, 要判断是否是有效的击中范围。
wktrf
2021-03-11 17:08:56 +08:00
@Sapp 在 2021 你这题的意义还不如楼主的问题意义大,一个 var 的特性和 this 指向能这么夸张,遇到这种写法的不如把写出这种人的打死吧,但凡开了严格模式或者用 let 替换 var 就不会让这代码跑起来,更别说 const+ts 了,你是招刚入门的当我没说
JerryCha
2021-03-11 17:17:12 +08:00
这需求我看你放京沪才找得着人了
qiayue
2021-03-11 17:22:49 +08:00
一线城市,能做出来的,可以拿 20K 以上了
hbolive
2021-03-11 17:26:20 +08:00
看你给钱多少了。。
456789
2021-03-11 17:30:44 +08:00
会这个的去三线的没几个,要不就在国企的那种将来是大大级别的
cyrbuzz
2021-03-11 17:39:44 +08:00
17 点 39 分看到这个,准备试试。
ahsjs
2021-03-11 17:42:31 +08:00
我能说你们考察的都很局限吗(hah),github.com/leonardomso/33-js-concepts
ecuplxd
2021-03-11 17:54:19 +08:00
@Sapp 严格模式和非严格模式还是有区别的。如果你直接就拿着这个题目问输出,没说啥模式下,那么谁都答不准。
cjd6568358
2021-03-11 17:56:38 +08:00
@Sapp 能熟练掌握这些的 离 40W 也差不多了 兄弟
musi
2021-03-11 17:57:47 +08:00
粗略看了下这篇文章,还挺有意思的。先收藏一下等下班了可以继续看看
cjd6568358
2021-03-11 17:59:42 +08:00
@wktrf 确实实际开发中很少出现这种"问题"代码 但面试本来就是优中选优 日常开发谁不会呢?考的就是基础知识扎实全面 遇到问题能独立调试解决 除掉特意背面试题的那种 真正掌握的人确实很有竞争力
cjd6568358
2021-03-11 18:01:17 +08:00
也许楼主开出的薪资真的很诱人吧 或者有大厂光环 不然就算是一二线遇到这种公司 我也是直接 pass 的 懒得花时间跟他墨迹
zhuisui
2021-03-11 18:05:39 +08:00
@Sapp 而且 REPL 和在文件里也不一样
whosesmile
2021-03-11 18:05:59 +08:00
@wktrf @ecuplxd 你们这属于抬杠,既然理解人家出题的目的了,还在那问严格模式有意思吗?又不是小学生,一道题好几个答案都说得通,都成年人了,理解面试官想考啥知识点,回答就完了呗。
cyrbuzz
2021-03-11 18:09:04 +08:00
@cyrbuzz

这个...比预想的要简单,都有现成的 API 。

```

<svg xmlns="http://www.w3.org/2000/svg" width="160" height="160" onclick="pause(this)" id="ff">
<g>
<rect
style="fill:#edd154;fill-opacity:1;stroke:#3c352d;stroke-width:2;stroke-opacity:1;"
id="square"
width="100"
height="100"
x="30"
y="30"
>
<animate
id="frame1"
attributeName="display"
values="inline;none;none;none"
keyTimes="0;0.33;0.66;1"
dur="1s"
begin="0s"
repeatCount="indefinite" />
</rect>
<path
style="fill:#edd154;fill-opacity:1;stroke:#3c352d;stroke-width:2;stroke-opacity:1;"
id="circle"
d="m 125,80 a 45,45 0 1 1 -90,0 45,45 0 1 1 90,0 z">
<animate
id="frame2"
attributeName="display"
values="none;inline;none;none"
keyTimes="0;0.33;0.66;1"
dur="1s"
begin="0s"
repeatCount="indefinite" />
</path>
<path
style="fill:#edd154;fill-opacity:1;stroke:#3c352d;stroke-width:2;stroke-opacity:1;"
id="triangle"
d="M 105,105 47,89 89,46 105,105 z">
<animate
id="frame3"
attributeName="display"
values="none;none;inline;none"
keyTimes="0;0.33;0.66;1"
dur="1s"
begin="0s"
repeatCount="indefinite" />
</path>
</g>
</svg>

<input type="text" placeholder="指定帧 1-3" onblur="setFrames(this.value)">

<script>
var a = true
function pause(t) {
a ? t.pauseAnimations() : t.unpauseAnimations()
a = !a
}

var b = document.querySelector('#ff')
cc = {
1: '0',
2: '0.33',
3: '0.66'
}
function setFrames(value) {
b.pauseAnimations()
a = !a
b.setCurrentTime(cc[value])
}

</script>
```

svg 复制自题主给的文章...搜了一下 svg 直接可以指定 onclick,在浏览器里控制台里可以看到 svg 控件有 pauseAnimation 和 unpauseAnimations,顾名思义一个暂停一个不暂停,实现 播放和暂停功能。循环这个不知道是啥..本身就是循环的,指定帧发现了一个叫 setCurrentTime 的 API,这个 API 可以指定当前 SVG 的时间,每个<animate>块都指定了 values 和 keyTimes 对应时间的 display 值,建立一个映射表即可。
whosesmile
2021-03-11 18:09:45 +08:00
二三线本来就不好找人,咱就别这么拔高了。
另外都抱怨 BAT 招人造火箭,进门拧螺丝;公务员 985 研究生,进门做冷板凳,楼主你这有啥区别么。。。
实打实的出题,发挥的题目也扣你们业务的,咱实在点不好吗?你要是 SVG 动画就符合你们业务当我没说。
markgor
2021-03-11 18:23:09 +08:00
@ecuplxd
代码已经给出了,没写 use strict 就表明是 非严格模式。
另外就算严格模式,回答的答案可以直接说出错,
甚至可以直接问考官究竟是什么模式下...
实际工作中沟通也是很重要的一个环节...

另外 @Sapp 表达的是这么简单(不复杂)的东西,一大部分人不懂,懂得都要 40W 起.,何况 LZ 的提问...

而 LZ 的面试题想要找的是学习能力强的人。
想法是好的实际过程中这样基本把所有人筛走了,除非工资福利特别诱惑......

现在是招人难、求职难的年代。
JoStar
2021-03-11 18:30:47 +08:00
你既然可以看学习能力,就不要拿 SVG 做面试题,跟他说今后的业务方向上会使用 SVG 。

学习能力可以通过他的经历看出来:
1. 是否关注社区动态或自己参与开源社区活动
2. 公司的业务代码是否想办法优化了(封装、脚本做重复工作、尝试引入一些新技术)

vue 的熟悉程度问问 VDOM 、简单的 DIFF 、V-MODEL 就行了。

除了 SVG,符合楼主要求的人我招过不少,但是二三线城市,可能得看点运气~
amundsen
2021-03-11 18:38:57 +08:00
4 万我做

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/760690

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX