1、前言本文总结了一些优质的前端面试题(多数源于网络),初学者阅后也要用心钻研其中的原理,重要知识需要系统学习,透彻学习,形成自己的知识链。万不可投机取巧,只求面试过关是错误的!面试注意点1. 面试题目: 根据你的等级和职位变化,入门级到专家级:范围、深度、方向。2. 题目类型: 技术视野、项目细节、理论知识题,算法题,开放性题,案例题。3. 进行追问: 可以确保问到你开始不懂或面试官开始不懂为止,这样可以大大延展题目的区分度和深度,知道你的实际能力。因为这种关联知识是长时期的学习,绝对不是临时记得住的。4. 回答问题再棒面试官(可能是你的直接领导面试),会考虑我要不要这个人做我的同事?所以态度很
2、重要。(感觉更像是相亲)5. 资深的工程师能把 absolute 和 relative 弄混,这样的人不要也罢,因为团队需要的你这个人具有可以依靠的才能(靠谱)。(来源程劭非老师 github:wintercn)前端开发面试知识点大纲HTML 页面被加载的时,link 会同时被加载,而import 引用的 CSS 会等到页面被加载完再加载; import 只在 IE5 以上才能识别,而 link 是 XHTML 标签,无兼容问题 ; link 方式的样式的权重 高于import 的权重.浏览器的内核分别是什么?* IE 浏览器的内核 Trident、Mozilla 的 Gecko、Chrome
3、 的 Blink(WebKit 的分支)、Opera 内核原为 Presto,现为 Blink;常见兼容性问题?* png24 位的图片在 iE6 浏览器上出现背景,解决方案是做成 PNG8.* 浏览器默认的 margin 和 padding 不同。解决方案是加一个全局的*margin:0;padding:0;来统一。* IE6 双边距 bug:块属性标签 float 后,又有横行的 margin 情况下,在 ie6 显示 margin 比设置的大。浮动 ie 产生的双倍距离 #box float:left; width:10px; margin:0 0 0 100px;这种情况之下 IE 会
4、产生 20px 的距离,解决方案是在 float 的标签样式控制中加入 _display:inline;将其转化为行内属性。 (_这个符号只有 ie6 会识别)渐进识别的方式,从总体中逐渐排除局部。首先,巧妙的使用“9”这一标记,将 IE 游览器从所有情况中分离出来。接着,再次使用“+”将 IE8 和 IE7、IE6 分离开来,这样 IE8 已经独立识别。css123456.bbbackground-color:#f1ee18;/*所有识别*/.background-color:#00deff9; /*IE6、7、8 识别*/+background-color:#a200ff;/*IE6、7
5、识别*/_background-color:#1e0bd1;/*IE6 识别*/ * IE 下,可以使用获取常规属性的方法来获取自定义属性,也可以使用 getAttribute()获取自定义属性;Firefox 下,只能使用 getAttribute()获取自定义属性.解决方法:统一通过 getAttribute()获取自定义属性.* IE 下,even 对象有 x,y 属性, 但是没有 pageX,pageY 属性;Firefox 下,event 对象有 pageX,pageY 属性,但是没有 x,y 属性 .* 解决方法:(条件注释)缺点是在 IE 浏览器下可能会增加额外的 HTTP 请求
6、数。* Chrome 中文界面下默认会将小于 12px 的文本强制按照 12px 显示,可通过加入 CSS 属性 -webkit-text-size-adjust: none; 解决 .超链接访问过后 hover 样式就不出现了 被点击访问过的超链接样式不在具有 hover 和 active了解决方法是改变 CSS 属性的排列顺序:L-V-H-A : a:link a:visited a:hover a:active html5 有哪些新特性、移除了那些元素?如何处理 HTML5 新标签的浏览器兼容问题?如何区分 HTML 和 HTML5?* HTML5 现在已经不是 SGML 的子集,主要是
7、关于图像,位置,存储,多任务等功能的增加。* 绘画 canvas用于媒介回放的 video 和 audio 元素本地离线存储 localStorage 长期存储数据,浏览器关闭后数据不丢失;sessionStorage 的数据在浏览器关闭后自动删除语意化更好的内容元素,比如 article、footer、header、nav、section表单控件,calendar 、date 、time、email、url、search新的技术 webworker, websockt, Geolocation* 移除的元素纯表现的元素:basefont,big,center,font, s,strike ,
8、tt ,u;对可用性产生负面影响的元素:frame,frameset,noframes;支持 HTML5 新标签:* IE8/IE7/IE6 支持通过 document.createElement 方法产生的标签,可以利用这一特性让这些浏览器支持 HTML5 新标签,浏览器支持新标签后,还需要添加标签默认的样式:* 当然最好的方式是直接使用成熟的框架、使用最多的是 html5shim 框架如何区分: DOCTYPE 声明新增的结构元素功能元素语义化的理解? 用正确的标签做正确的事情! html 语义化就是让页面的内容结构化,便于对浏览器、搜索引擎解析; 在没有样式 CCS 情况下也以一种文档格
9、式显示,并且是容易阅读的。 搜索引擎的爬虫依赖于标记来确定上下文和各个关键字的权重,利于 SEO。 使阅读源代码的人对网站更容易将网站分块,便于阅读维护理解。HTML5 的离线储存? localStorage 长期存储数据,浏览器关闭后数据不丢失; sessionStorage 数据在浏览器关闭后自动删除。(写) 描述一段语义的 html 代码(HTML5 中新增加的很多标签(如:、 、和等)就是基于语义化设计原则)1234标题 专注 Web 前端技术 iframe 有那些缺点? *iframe 会阻塞主页面的 Onload 事件; *iframe 和主页面共享连接池,而浏览器对相同域的连接有
10、限制,所以会影响页面的并行加载。 使用 iframe 之前需要考虑这两个缺点。如果需要使用 iframe,最好是通过 javascript 动态给 iframe 添加 src 属性值,这样可以可以绕开以上两个问题。请描述一下 cookies,sessionStorage 和 localStorage 的区别? cookie 在浏览器和服务器间来回传递。 sessionStorage 和 localStorage 不会 sessionStorage 和 localStorage 的存储空间更大; sessionStorage 和 localStorage 有更多丰富易用的接口; sessionS
11、torage 和 localStorage 各自独立的存储空间;如何实现浏览器内多个标签页之间的通信? (阿里)调用 localstorge、cookies 等本地存储方式webSocket 如何兼容低浏览器?(阿里)Adobe Flash Socket 、 ActiveX HTMLFile (IE) 、 基于 multipart 编码发送 XHR 、 基于长轮询的 XHRCSS介绍一下 CSS 的盒子模型?(1)有两种, IE 盒子模型、标准 W3C 盒子模型;IE 的 content 部分包含了 border 和 pading;(2)盒模型: 内容(content)、填充(padding)
12、、边界(margin) 、 边框(border).CSS 选择符有哪些?哪些属性可以继承?优先级算法如何计算? CSS3 新增伪类有那些? 1.id 选择器( # myid) 2.类选择器(.myclassname) 3.标签选择器(div, h1, p) 4.相邻选择器(h1 + p) 5.子选择器(ul id class tagimportant 比 内联优先级高CSS3 新增伪类举例 p:first-of-type 选择属于其父元素的首个 元素的每个 元素。 p:last-of-type 选择属于其父元素的最后 元素的每个 元素。 p:only-of-type 选择属于其父元素唯一的 元
13、素的每个 元素。 p:only-child 选择属于其父元素的唯一子元素的每个 元素。 p:nth-child(2) 选择属于其父元素的第二个子元素的每个 元素。 :enabled :disabled 控制表单控件的禁用状态。 :checked 单选框或复选框被选中。如何居中 div?123456/ 给 div 设置一个宽度,然后添加 margin:0 auto 属性divwidth:200px;margin:0 auto; 如何居中一个浮动元素?123456789101112确定容器的宽高 宽 500 高 300 的层设置层的外边距.div Width:500px ; height:300p
14、x;/高度可以不设Margin: -150px 0 0 -250px;position:relative;相对定位background-color:pink;/方便看效果left:50%;top:50%; 列出 display 的值,说明他们的作用。 block 象块类型元素一样显示。 none 缺省值。象行内元素类型一样显示。 inline-block 象行内元素一样显示,但其内容象块类型元素一样显示。 list-item 象块类型元素一样显示,并添加样式列表标记。position 的值, relative 和 absolute 定位原点是? *absolute:生成绝对定位的元素,相对于
15、static 定位以外的第一个父元素进行定位。 *fixed:生成绝对定位的元素,相对于浏览器窗口进行定位。 *relative:生成相对定位的元素,相对于其正常位置进行定位。 * static 默认值。没有定位,元素出现在正常的流中*(忽略 top, bottom, left, right z-index 声明)。* inherit 规定从父元素继承 position 属性的值。CSS3 有哪些新特性?CSS3 实现圆角(border-radius:8px),阴影(box-shadow:10px),对文字加特效(text-shadow 、),线性渐变(gradient),旋转(transfo
16、rm )transform:rotate(9deg) scale(0.85,0.90) translate(0px,-30px) skew(-9deg,0deg);/旋转,缩放, 定位 ,倾斜增加了更多的 CSS 选择器 多背景 rgba一个满屏 品 字布局 如何设计?经常遇到的 CSS 的兼容性有哪些?原因,解决方法是什么?为什么要初始化 CSS 样式? 因为浏览器的兼容问题,不同浏览器对有些标签的默认值是不同的,如果没对 CSS 初始化往往会出现浏览器之间的页面显示差异。 当然,初始化样式会对 SEO 有一定的影响,但鱼和熊掌不可兼得,但力求影响最小的情况下初始化。*最简单的初始化方法就是
17、: * padding: 0; margin: 0; (不建议)淘宝的样式初始化:123456789101112131415body, h1, h2, h3, h4, h5, h6, hr, p, blockquote, dl, dt, dd, ul, ol, li, pre, form, fieldset, legend, button, input, textarea, th, td margin:0; padding:0; body, button, input, select, textarea font:12px/1.5tahoma, arial, 5b8b4f53; h1, h2,
18、 h3, h4, h5, h6 font-size:100%; address, cite, dfn, em, var font-style:normal; code, kbd, pre, samp font-family:couriernew, courier, monospace; small font-size:12px; ul, ol list-style:none; a text-decoration:none; a:hover text-decoration:underline; sup vertical-align:text-top; sub vertical-align:tex
19、t-bottom; legend color:#000; fieldset, img border:0; button, input, select, textarea font-size:100%; table border-collapse:collapse; border-spacing:0; absolute 的 containing block 计算方式跟正常流有什么不同?position 跟 display、margin collapse、overflow、float 这些特性相互叠加后会怎么样?对 BFC 规范的理解?(W3C CSS 2.1 规范中的一个概念,它决定了元素如何对
20、其内容进行定位,以及与其他元素的关 系和相互作用。)css 定义的权重以下是权重的规则:标签的权重为 1,class 的权重为 10,id 的权重为 100,以下例子是演示各种定义的权重值:123456789101112131415161718/*权重为 1*/div/*权重为 10*/.class1/*权重为 100*/#id1/*权重为 100+1=101*/#id1 div/*权重为 10+1=11*/.class1 div/*权重为 10+10+1=21*/.class1 .class2 div如果权重相同,则最后定义的样式会起作用,但是应该避免这种情况出现解释下浮动和它的工作原理?清
21、除浮动的技巧用过媒体查询,针对移动端的布局吗?使用 CSS 预处理器吗?喜欢那个?SASS如果需要手动写动画,你认为最小时间间隔是多久,为什么?(阿里)多数显示器默认频率是 60Hz,即 1 秒刷新 60 次,所以理论上最小间隔为 1/601000ms 16.7msdisplay:inline-block 什么时候会显示间隙?(携程)移除空格、使用 margin 负值、使用 font-size:0、letter-spacing、word-spacingJavaScriptJavaScript 原型,原型链 ? 有什么特点?eval 是做什么的?它的功能是把对应的字符串解析成 JS 代码并运行;
22、 应该避免使用 eval,不安全,非常耗性能(2 次,一次解析成 js 语句,一次执行)。null,undefined 的区别?写一个通用的事件侦听器函数123456789101112131415161718192021222324252627282930313233343536373839/ event(事件)工具集,来源: = / 页面加载完成后readyEvent : function(fn) if (fn=null) fn=document;var oldonload = window.onload;if (typeof window.onload != function) windo
23、w.onload = fn; else window.onload = function() oldonload();fn();,/ 视能力分别使用 dom0|dom2|IE 方式 来绑定事件/ 参数: 操作的元素,事件名称 ,事件处理程序addEvent : function(element, type, handler) if (element.addEventListener) /事件类型、需要执行的函数、是否捕捉element.addEventListener(type, handler, false); else if (element.attachEvent) element.at
24、tachEvent(on + type, function() handler.call(element);); else elementon + type = handler;,/ 移除事件removeEvent : function(element, type, handler) if (element.removeEnentListener) element.removeEnentListener(type, handler, false); else if (element.datachEvent) element.detachEvent(on + type, handler); el
25、se elementon + type = null;4041424344454647484950515253545556575859606162636465666768697071727374757677, / 阻止事件 (主要是事件冒泡,因为 IE 不支持事件捕获)stopPropagation : function(ev) if (ev.stopPropagation) ev.stopPropagation(); else ev.cancelBubble = true;,/ 取消事件的默认行为preventDefault : function(event) if (event.preve
26、ntDefault) event.preventDefault(); else event.returnValue = false;,/ 获取事件目标getTarget : function(event) return event.target | event.srcElement;,/ 获取 event 对象的引用,取到事件的所有信息,确保随时能使用 event;getEvent : function(e) var ev = e | window.event;if (!ev) var c = this.getEvent.caller;while (c) ev = c.arguments0;i
27、f (ev c = c.caller;return ev;Node.js 的适用场景?高并发、聊天、实时消息推送介绍 js 的基本数据类型12number,string,boolean,object,undefinedJavascript 如何实现继承?通过原型和构造器“1, “2”, “3”.map(parseInt) 答案是多少?1, NaN, NaN 因为 parseInt 需要两个参数 (val, radix),其中 radix 表示解析时用的基数。 map 传了 3 个 (element, index, array),对应的 radix 不合法导致解析失败。如何创建一个对象? (画出
28、此对象的内存图)123456function Person(name, age) this.name = name;this.age = age;this.sing = function() alert(this.name) 谈谈 This 对象的理解this 是 js 的一个关键字,随着函数使用场合不同,this 的值会发生变化。但是有一个总原则,那就是 this 指的是调用函数的那个对象。this 一般情况下:是全局对象 Global。 作为方法调用,那么 this 就是指这个对象事件是?IE 与火狐的事件机制有什么区别? 如何阻止冒泡?1. 我们在网页中的某个操作(有的操作对应多个事件)
29、。例如:当我们点击一个按钮就会产生一个事件。是可以被 JavaScript 侦测到的行为。2. 事件处理机制:IE 是事件冒泡、火狐是 事件捕获;3. ev.stopPropagation();什么是闭包(closure ),为什么要用它?执行 say667()后,say667()闭包内部变量会存在 ,而闭包内部函数的内部变量不会存在.使得 Javascript 的垃圾回收机制 GC 不会收回 say667()所占用的资源,因为 say667()的内部函数的执行需要依赖 say667()中的变量。这是对闭包作用的非常直白的描述.12345678910function say667() / Lo
30、cal variable that ends up within closurevar num = 666;var sayAlert = function() alert(num); num+;return sayAlert;var sayAlert = say667();sayAlert()/执行结果应该弹出的 667“use strict”;是什么意思 ? 使用它的好处和坏处分别是什么?如何判断一个对象是否属于某个类?1234使用 instanceof (待完善)if(a instanceof Person)alert(yes);5 new 操作符具体干了什么呢?1、创建一个空对象,并且
31、this 变量引用该对象,同时还继承了该函数的原型。2、属性和方法被加入到 this 引用的对象中。3、新创建的对象由 this 所引用,并且最后隐式的返回 this 。1234var obj = ;obj._proto_ = Base.prototype;Base.call(obj); Javascript 中,有一个函数,执行时对象查找时,永远不会去查找原型,这个函数是?12hasOwnPropertyJSON 的了解?JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它是基于 JavaScript 的一个子集。数据格式简单, 易于读写, 占用带
32、宽小 age:12, name:backjs 延迟加载的方式有哪些?defer 和 async、动态创建 DOM 方式(用得最多)、按需异步载入 jsajax 是什么?同步和异步的区别?如何解决跨域问题?12jsonp、 iframe、window.name、window.postMessage、服务器上设置代理页面模块化怎么做?立即执行函数,不暴露私有成员1234567891011121314var module1 = (function()var _count = 0;var m1 = function()/.;var m2 = function()/.;return m1 : m1,m2
33、 : m2;)(); AMD(Modules/Asynchronous-Definition )、CMD(Common Module Definition)规范区别?异步加载的方式有哪些?(1) defer,只支持 IE(2) async:(3) 创建 script,插入到 DOM 中,加载完毕后 callBackdocumen.write 和 innerHTML 的区别 document.write 只能重绘整个页面 innerHTML 可以重绘页面的一部分.call() 和 .apply() 的区别?例子中用 add 来替换 sub,add.call(sub,3,1) = add(3,1)
34、 ,所以运行结果为:alert(4);注意:js 中的函数其实是对象,函数名是对 Function 对象的引用。1234567891011function add(a,b)alert(a+b);function sub(a,b)alert(a-b);add.call(sub,3,1);Jquery 与 jQuery UI 有啥区别? *jQuery 是一个 js 库,主要提供的功能是选择器,属性修改和事件绑定等等。 *jQuery UI 则是在 jQuery 的基础上,利用 jQuery 的扩展性,设计的插件。 提供了一些常用的界面元素,诸如对话框、拖动行为、改变大小行为等等JQuery 的源
35、码看过吗?能不能简单说一下它的实现原理?jquery 中如何将数组转化为 json 字符串,然后再转化回来?jQuery 中没有提供这个功能,所以你需要先编写两个 jQuery 的扩展:1234567891011$.fn.stringifyArray = function(array) return JSON.stringify(array)$.fn.parseArray = function(array) return JSON.parse(array) 然后调用:$(“).stringifyArray(array)针对 jQuery 的优化方法?*基于 Class 的选择性的性能相对于 I
36、d 选择器开销很大,因为需遍历所有 DOM 元素。*频繁操作的 DOM,先缓存起来再操作。用 Jquery 的链式调用更好。比如:var str=$(“a“).attr(“href“); *for (var i = size; i arr.length; i+) for 循环每一次循环都查找了数组 (arr) 的.length 属性,在开始循环的时候设置一个变量来存储这个数字,可以让循环跑得更快:for (var i = size, length = arr.length; i length; i+) JavaScript 中的作用域与变量声明提升?如何编写高性能的 Javascript?那些
37、操作会造成内存泄漏?内存泄漏指任何对象在您不再拥有或需要它之后仍然存在。垃圾回收器定期扫描对象,并计算引用了每个对象的其他对象的数量。如果一个对象的引用数量为 0(没有其他对象引用过该对象),或对该对象的惟一引用是循环的,那么该对象的内存即可回收。setTimeout 的第一个参数使用字符串而非函数的话,会引发内存泄漏。闭包、控制台日志、循环(在两个对象彼此引用且彼此保留时,就会产生一个循环)JQuery 一个对象可以同时绑定多个事件,这是如何实现的?如何判断当前脚本运行在浏览器还是 node 环境中?(阿里)通过判断 Global 对象是否为 window,如果不为 window,当前脚本没
38、有运行在浏览器中其他问题你遇到过比较难的技术问题是?你是如何解决的?常使用的库有哪些?常用的前端开发工具?开发过什么应用或组件?页面重构怎么操作?列举 IE 与其他浏览器不一样的特性?99%的网站都需要被重构是那本书上写的?什么叫优雅降级和渐进增强?WEB 应用从服务器主动推送 Data 到客户端有那些方式?对 Node 的优点和缺点提出了自己的看法?*(优点)因为 Node 是基于事件驱动和无阻塞的,所以非常适合处理并发请求, 因此构建在 Node 上的代理服务器相比其他技术实现(如 Ruby)的服务器表现要好得多。 此外,与 Node 代理服务器交互的客户端代码是由javascript 语
39、言编写的, 因此客户端和服务器端都用同一种语言编写,这是非常美妙的事情。*(缺点)Node 是一个相对新的开源项目,所以不太稳定,它总是一直在变, 而且缺少足够多的第三方库支持。看起来,就像是 Ruby/Rails 当年的样子。你有哪些性能优化的方法?(看雅虎 14 条性能优化原则)(1) 减少 http 请求次数:CSS Sprites, JS、CSS 源码压缩、图片大小控制合适;网页Gzip,CDN 托管, data 缓存 ,图片服务器。(2) 前端模板 JS+数据,减少由于 HTML 标签导致的带宽浪费,前端用变量保存 AJAX 请求结果,每次操作本地变量,不用请求,减少请求次数(3)
40、用 innerHTML 代替 DOM 操作,减少 DOM 操作次数,优化 javascript 性能。(4) 当需要设置的样式很多时设置 className 而不是直接操作 style。(5) 少用全局变量、缓存 DOM 节点查找的结果。减少 IO 读取操作。(6) 避免使用 CSS Expression(css 表达式) 又称 Dynamic properties(动态属性)。(7) 图片预加载,将样式表放在顶部,将脚本放在底部 加上时间戳。(8) 避免在页面的主体布局中使用 table,table 要等其中的内容完全下载之后才会显示出来,显示比 div+css 布局慢。http 状态码有那
41、些?分别代表是什么意思?123456789100-199 用于指定客户端应相应的某些动作。 200-299 用于表示请求成功。 300-399 用于已经移动的文件并且常被包含在定位头信息中指定新的地址信息。 400-499 用于指出客户端的错误。400 1、语义有误,当前请求无法被服务器理解。401 当前请求需要用户验证 403 服务器已经理解请求,但是拒绝执行它。500-599 用于支持服务器错误。 503 服务不可用一个页面从输入 URL 到页面加载显示完成,这个过程中都发生了什么?(流程说的越详细越好) 查找浏览器缓存 DNS 解析、查找该域名对应的 IP 地址、重定向(301)、发出第
42、二个 GET 请求 进行 HTTP 协议会话 客户端发送报头(请求报头) 服务器回馈报头(响应报头) html 文档开始下载 文档树建立,根据标记请求所需指定 MIME 类型的文件 文件显示浏览器这边做的工作大致分为以下几步:加载:根据请求的 URL 进行域名解析,向服务器发起请求,接收文件( HTML、JS、CSS、图象等)。解析:对加载到的资源(HTML、JS、CSS 等)进行语法解析,建议相应的内部数据结构(比如 HTML 的 DOM 树,JS 的(对象)属性表,CSS 的样式规则等等) 除了前端以外还了解什么其它技术么?你最最厉害的技能是什么?你常用的开发工具是什么,为什么?对前端界面
43、工程师这个职位是怎么样理解的?它的前景会怎么样? 前端是最贴近用户的程序员,比后端、数据库、产品经理、运营、安全都近。o 实现界面交互o 提升用户体验o 有了 Node.js,前端可以实现服务端的一些事情 前端是最贴近用户的程序员,前端的能力就是能让产品从 90 分进化到 100 分,甚至更好, 参与项目,快速高质量完成实现效果图,精确到 1px; 与团队成员,UI 设计,产品经理的沟通; 做好的页面结构,页面重构和用户体验; 处理 hack,兼容、写出优美的代码格式; 针对服务器的优化、拥抱最新前端技术。加班的看法?加班就像借钱,原则应当是-救急不救穷平时如何管理你的项目? 先期团队必须确定
44、好全局样式(globe.css),编码模式(utf-8) 等; 编写习惯必须一致(例如都是采用继承式的写法,单样式都写成一行); 标注样式编写人,各模块都及时标注(标注关键样式调用的地方); 页面进行标注(例如 页面 模块 开始和结束); CSS 跟 HTML 分文件夹并行存放,命名都得统一(例如 style.css); JS 分文件夹存放 命名以该 JS 功能为准的英文翻译。 图片采用整合的 images.png png8 格式文件使用 尽量整合在一起使用方便将来的管理如何设计突发大规模并发架构?说说最近最流行的一些东西吧?常去哪些网站?12Node.js、Mongodb、npm、MVVM、
45、MEAN、three.js 移动端(Android IOS )怎么做好用户体验? 清晰的视觉纵线、信息的分组、极致的减法、 利用选择代替输入、标签及文字的排布方式、 依靠明文确认密码、合理的键盘利用、你在现在的团队处于什么样的角色,起到了什么明显的作用?你认为怎样才是全端工程师(Full Stack developer)?介绍一个你最得意的作品吧?你的优点是什么?缺点是什么?如何管理前端团队?最近在学什么?能谈谈你未来 3,5 年给自己的规划吗?想问公司的问题?问公司问题: 目前关注哪些最新的 Web 前端技术(未来的发展方向)? 前端团队如何工作的(实现一个产品的流程)? 公司的薪资结构是什么样子的?