2023年7月29日发(作者:)
前端的题⽬汇总前端开发⾯试知识点⼤纲:HTML&CSS: 对Web标准的理解、浏览器内核差异、兼容性、hack、CSS基本功:布局、盒⼦模型、选择器优先级及使⽤、、、移动端适应
JavaScript:
数据类型、⾯向对象、继承、闭包、插件、作⽤域、跨域、原型链、模块化、⾃定义事件、内存泄漏、事件机制、异步装载回调、模板引擎、Nodejs、JSON、ajax其他: HTTP、安全、正则、优化、重构、响应式、移动端、团队协作、可维护、SEO、UED、架构、职业⽣涯
⾯试有⼏点需注意:(来源程劭⾮⽼师 github:@wintercn)1. ⾯试题⽬: 根据你的等级和职位变化,⼊门级到专家级:范围↑、深度↑、⽅向↑。2. 题⽬类型: 技术视野、项⽬细节、理论知识题,算法题,开放性题,案例题。3. 进⾏追问: 可以确保问到你开始不懂或⾯试官开始不懂为⽌,这样可以⼤⼤延展题⽬的区分度和深度,知道你的实际能⼒。因为这种关联知识是长时期的学习,绝对不是临时记得住的。4. 回答问题再棒,⾯试官(可能是你的直接领导⾯试),会考虑我要不要这个⼈做我的同事?所以态度很重要。(感觉更像是相亲)5. 资深的⼯程师能把 absolute 和 relative 弄混,这样的⼈不要也罢,因为团队需要的你这个⼈具有可以依靠的才能(靠谱)。HTML+CSS1.对WEB标准以及W3C的理解与认识标签闭合、标签⼩写、不乱嵌套、提⾼搜索机器⼈搜索⼏率、使⽤外 链css和js脚本、结构⾏为表现的分离、⽂件下载与页⾯速度更快、内容能被更多的⽤户所访问、内容能被更⼴泛的设备所访问、更少的代码和组件,容易维 护、改版⽅便,不需要变动页⾯内容、提供打印版本⽽不需要复制内容、提⾼⽹站易⽤性;和html有什么区别HTML是⼀种基本的WEB⽹页设计语⾔,XHTML是⼀个基于XML的置标语⾔最主要的不同:XHTML 元素必须被正确地嵌套。XHTML 元素必须被关闭。标签名必须⽤⼩写字母。XHTML ⽂档必须拥有根元素。e? 严格模式与混杂模式-如何触发这两种模式,区分它们有何意义?
⽤于声明⽂档使⽤那种规范(html/Xhtml)⼀般为 严格 过度 基于框架的html⽂档加⼊XMl声明可触发,解析⽅式更改为IE5.5 拥有IE5.5的bug4.⾏内元素有哪些?块级元素有哪些?CSS的盒模型?块级元素:div p h1 h2 h3 h4 form ul⾏内元素: a b br i span input selectCss盒模型:内容,border ,margin,引⼊的⽅式有哪些? link和@import的区别是?内联 内嵌 外链 导⼊区别 :同时加载前者⽆兼容性,后者CSS2.1以下浏览器不⽀持Link ⽀持使⽤javascript改变样式,后者不可选择符有哪些?哪些属性可以继承?优先级算法如何计算?内联和important哪个优先级⾼?标签选择符 类选择符 id选择符继承不如指定 Id>class>标签选择后者优先级⾼7.前端页⾯有哪三层构成,分别是什么?作⽤是什么?结构层 Html 表⽰层 CSS ⾏为层 的基本语句构成是?选择器{属性1:值1;属性2:值2;……}9.你做的页⾯在哪些流览器测试过?这些浏览器的内核分别是什么?Ie(Trident内核)
⽕狐(Gecko内核)
⾕歌、Safari、百度、猎豹(webkit内核) opear(Presto内核)10.写出⼏种IE6 BUG的解决⽅法1.双边距BUG float引起的 使⽤display2.3像素问题 使⽤float引起的 使⽤dislpay:inline -3px3.超链接hover 点击后失效 使⽤正确的书写顺序 link visited hover z-index问题 给⽗级添加position: 透明 使⽤js代码 改-height 最⼩⾼度 !Important 解决’ 在ie6下遮盖 使⽤iframe嵌套8.为什么没有办法定义1px左右的宽度容器(IE6默认的⾏⾼造成的,使⽤over:hidden,zoom:0.08 line-height:1px)11.标签上title与alt属性的区别是什么?Alt 当图⽚不显⽰是 ⽤⽂字代表。Title 为该属性提供信息12.描述css reset的作⽤和⽤途。Reset重置浏览器的css默认属性 浏览器的品种不同,样式不同,然后重置,让他们统⼀13.解释css sprites,如何使⽤。Css 精灵 把⼀堆⼩的图⽚整合到⼀张⼤的图⽚上,减轻服务器对图⽚的请求数量14.浏览器标准模式和怪异模式之间的区别是什么?盒⼦模型 渲染模式的不同使⽤ Mode 可显⽰为什么模式15.你如何对⽹站的⽂件和资源进⾏优化?期待的解决⽅案包括:⽂件合并⽂件最⼩化/⽂件压缩使⽤CDN托管缓存的使⽤16.什么是语义化的HTML?直观的认识标签 对于搜索引擎的抓取有好处17.清除浮动的⼏种⽅式,各⾃的优缺点1.使⽤空标签清除浮动 clear:both(理论上能清楚任何标签,,,增加⽆意义的标签)2.使⽤overflow:auto(空标签元素清除浮动⽽不得不增加⽆意代码的弊端,,使⽤zoom:1⽤于兼容IE)3.是⽤afert伪元素清除浮动(⽤于⾮IE浏览器)ript的typeof返回哪些数据类型(6种)Object number function boolean underfind String2.例举3种强制类型转换和2种隐式类型转换?强制(parseInt,parseFloat,number)隐式(== – ===)() 和 join() 的区别前者是切割成数组的形式,后者是将数组转换成字符串4.数组⽅法pop() push() unshift() shift()Push()尾部添加 pop()尾部删除Unshift()头部添加 shift()头部删除5.事件绑定和普通事件有什么区别区别就是普通事件只⽀持单个事件,⽽事件绑定可以添加多个事件,就这么简单。
和DOM事件流的区别1.执⾏顺序不⼀样、2.参数不⼀样3.事件加不加指向问题和标准下有哪些兼容性的写法Var ev = ev || Width || WidthVar target = ment||请求的时候get 和post⽅式的区别⼀个在url后⾯ ⼀个放在虚拟载体⾥⾯有⼤⼩限制安全问题应⽤不同 ⼀个是论坛等只需要请求的,⼀个是类似修改密码的和apply的区别(this,obj1,obj2,obj3)(this,arguments)请求时,如何解释json数据使⽤eval parse 鉴于安全性考虑 使⽤parse更靠谱11.b继承a的⽅法12.写⼀个获取⾮⾏间样式的函数function getStyle(obj,attr,value){ if(!value) { if(tStyle) { return tStyle(attr) } else { putedStyle(attr,false) } } else { [attr]=value }}13.事件委托是什么闭包的定义:Javascript闭包就是在另⼀个作⽤域中保存了⼀份它从上⼀级函数或作⽤域取得的变量(键值对),⽽这些键值对是不会随上⼀级函数的执⾏完成⽽销毁。必须强调,闭包是运⾏期概念,⼀个函数实例。Javascript闭包的实现,通常是在函数内部再定义函数,让该内部函数使⽤上⼀级函数的变量或全局变量。我的理解是,闭包就是能够读取其他函数内部变量的函数。 由于在Javascript语⾔中,只有函数内部的⼦函数才能读取局部变量,因此可以把闭包简单理解成“定义在⼀个函数内部的函数”。 所以,在本质上,闭包就是将函数内部和函数外部连接起来的⼀座桥梁。闭包的作⽤:它的最⼤⽤处有两个,⼀个是前⾯提到的可以读取函数内部的变量,另⼀个就是让这些变量的值始终保持在内存中。15. 如何阻⽌事件冒泡和默认事件
canceBubble return false16. 添加 删除 替换 插⼊到某个接点的⽅法
Chidl()Child17. 解释 jsonp 的原理,以及为什么不是真正的 ajax动态创建 script 标签,回调函数
Ajax 是页⾯⽆刷新请求数据操作
ript 的本地对象,内置对象和宿主对象
本地对象为 array obj regexp 等可以 new 实例化
内置对象为 gload Math 等不可以实例化的
宿主为浏览器⾃带的 document,window 等
nt load 和 document ready 的区别
是在结构和样式加载完才执⾏ 原⽣种没有这个⽅法, jquery 中有 $().ready(function)20.”==” 和 “===” 的不同
前者会⾃动转换类型
后者不会
ript 的同源策略
⼀段脚本只能读取来⾃于同⼀来源的窗⼝和⽂档的属性,这⾥的同⼀来源指的是主机名、协议和端⼝号的组合
22. 编写⼀个数组去重的⽅法
function oSort(arr){var result ={};var newArr=[];for(var i=0;i{if(!result[arr]){(arr)result[arr]=1}}return newArr}
[HTML && CSS]e严格模式与混杂模式-如何触发这两种模式,区分它们有何意义?严格模式:使⽤此类型的⽹页,浏览器解析将相对严格,不允许使⽤任何表现样式的标识和属性,⽐如在元素中直接使⽤background-color背景⾊属性。混杂模式:浏览器对XHTML的解析较为宽松。允许使⽤4.01中的标签,但必须符合XHTML的语法。2:⾏内元素有哪些?块级元素有哪些?CSS的盒模型?⾏内元素:span,a,var ,em,input,img,img,textarea,var,em,strong,select,块级标签:div,p,h1-h3,ul,ol,dl,li,dd,dt,table,td,tr,CSS的盒模型:CSS布局中的每⼀个元素,在浏览器的解析中,都被当做⼀个盒状物。引⼊的⽅式有哪些? link和@import的区别是?CSS引⼊的⽅式在html⽂档的head部分加⼊:在html⽂档的head部分直接写⼊css⽂档。直接在html标签⾥写⼊对这个标签的css控制测试信息link和@import的区别是link写在html页⾯中,@import写在CSS页⾯中选择符有哪些?哪些属性可以继承?优先级算法如何计算?内联和important哪个优先级⾼?CSS选择符: 类选择器 、 标签名选择器、 ID选择器 、 后代选择器(派⽣选择器)、 群组选择器可以继承: 类选择器 、 标签名选择器、 后代选择器(派⽣选择器)、群组选择器可以继承: 类选择器 、 标签名选择器、 后代选择器(派⽣选择器)、群组选择器优先级算法:标签内直接定义:1000ID选择器:100类选择器 :10标签名选择器:1内联和important中,important优先级⾼5:前端页⾯有哪三层构成,分别是什么?作⽤是什么?结构层;主要指DOM节点;HTML/XHTML样式层;主要是指页⾯渲染;CSS脚本层:主要指页⾯动画效果;JS/AS6:css的基本语句构成是?选择符、属性、值8:你做的页⾯在哪些流览器测试过?这些浏览器的内核分别是什么?经常遇到的浏览器的兼容性有哪些?怎么会出现?解决⽅法是什么?IE6、7、8、FF、Opear、Safari、Chrome、MaxthonTrident:Windows 下的 IE 浏览器使⽤的内核代号。除 IE 外,众多的 IE Shell(如 Maxthon )都使⽤这个内核。Gecko:Mozilla Firefox 浏览器使⽤的内核代号。Presto:Opera 浏览器使⽤的内核代号,这是⽬前公认⽹页浏览速度最快的浏览器内核。KHTML/WebCore: Konqueror/Safari 浏览器使⽤的内核代号。经常遇到的浏览器兼容问题:1.在有的浏览器中,默认字体⼤⼩为12px,所以在设字体⼤⼩的时候,最⼩设为12px,如果在做的过程中,发现字体⼩于12,可直接作为图⽚使⽤2.a标签对⾥不能嵌套a标签对3.若给a标签内的内容样式加上样式,需要设置display:block;(在IE中如果设置宽⾼会⾃动变成块,在FF中则不会),但如果设置了float属性,就不需要设置display:block。,ol在FF默认情况下,有list-style-type样式和padding值,dl在IE和FF默认情况下,有padding值,所以应该事先声明ul,li,ol,dl,dd,dd{margin:0;padding:0}。5.作为外部 wrapper 的 div 不要定死⾼度, 最好还加上 overflow: hidden.以达到⾼度⾃适应6.关于⼿形光标. cursor: pointer. ⽽hand 只适⽤于 布局中的居中问题:在⽗级元素定义TEXT-ALIGN: center;这个的意思就是在⽗级元素内的内容居中;对于IE这样设定就已经可以了。但在mozilla中不能居中。解决办法就是在⼦元素定义时候设定时再加上“margin-right: auto;margin-left: auto; ”需要说明的是,如果你想⽤这个⽅法使整个页⾯要居中,建议不要套在⼀个DIV⾥,你可以依次拆出多个div,只要在每个拆出的div⾥定义margin-right: auto;margin-left:auto; 就可以了。8.浮动ie产⽣的双倍距离#box{ float:left; width:100px; margin:0 0 0 100px; //这种情况之下IE会产⽣200px的距离,这时需要设置display:inline; //使浮动忽略}9.如何居中⼀个浮动元素?对其设置margin:x auto;10.有没有关注HTML5和CSS3?如有请简单说⼀些您对它们的了解情况!有,HTML5的是⽬前正在为未来的HTML标准的主要修订的发展。其前任⼀样,4.01和XHTML 1.1的HTML,HTML5的是⼀个结构和提交万维⽹内容的标准。新标准结合了诸如视频播放,拖动和放下以前曾在第三⽅浏览器插件依赖例如Adobe Flash,微软的Silverlight的功能,和⾕歌齿轮。12:如果让你来制作⼀个访问量很⾼的⼤型⽹站,你会如何来管理所有CSS⽂件、JS与图⽚?把所有的CSS⽂件都放⼊⼀个样式表中,通过把所有的脚本放到⼀个⽂件中来减少HTTP请求的⽅法。js⽂件也采⽤同样的⽅法。把所有的背景图像都放到⼀个图⽚⽂件中,然后通过CSS的background-image和background-position属性来显⽰图⽚的不同部分。14:你对前端界⾯⼯程师这个职位是怎么样理解的?它的前景会怎么样?前端界⾯⼯程师:1. 与交互设计师、视觉设计师协作,根据设计图完成页⾯制作。 2. 维护及优化⽹站前端性能。前景: 长期以来,国内前端开发在整个软件开发⾏业内占得⽐重较⼩,发展较晚。⽹站也多倾向于赢利最⼤化⽽轻视⽤户体验。前后端⽐例悬殊⼤。近⼏年来,随着 以⽤户为中⼼ 的思想普及发展。前端开发呈现出强劲的发展态势,前端开发⼈员在项⽬中的重要性⽇益突出。前端开发⼈员呈现出严重的⼈员短缺现象。[Javascript]1:js是什么,js和html 的开发如何结合?js是⼀种基于对象和事件驱动,并具有安全性的脚本语⾔。可以html的三个地⽅编写js脚本语⾔:⼀是在⽹页⽂件的标签对中直接编写脚本程序代码;⼆是将脚本程序代码放置在⼀个单独的⽂件中,在⽹页⽂件中引⽤这个脚本程序语⾔;三是将脚本程序代码作为某个元素的事件属性值或超链接的href属性值。div{margin: 0;padding: 0;border:1px red solid;}div{margin: 0;padding: 0;border:1px red solid;}2.怎样添加、移除、移动、复制、创建和查找节点添加:append删除:remove移动:复制:创建:create查找:(1)创建新节点 createDocumentFragment() //创建⼀个⽚段 createElement_x_x() //创建⼀个具体的元素 createTextNode() //创建⼀个⽂本节点(2)添加、移除、替换、插⼊ a() removeChild() replaceChild() insertBefore()(3)查找 getElementsByTagName_r() //通过标签名称 getElementsByName() //通过元素的Name属性的值 getElementById() //通过元素Id,唯⼀性(1)创建新节点 createDocumentFragment() //创建⼀个⽚段 createElement_x_x() //创建⼀个具体的元素 createTextNode() //创建⼀个⽂本节点(2)添加、移除、替换、插⼊ a() removeChild() replaceChild() insertBefore()(3)查找 getElementsByTagName_r() //通过标签名称 getElementsByName() //通过元素的Name属性的值 getElementById() //通过元素Id,唯⼀性
现在有⼀个正显⽰着Yahoo!股票价格的页⾯。页⾯上有⼀个按钮,你可以单击它来刷新价格,但不会重新加载页⾯。请你描述⼀下实现这个功能的过程,假设服务器会负责准备好正确的股票价格数据。这个问题牵扯到⼀组我想要考察的基本知识点:DOM结构、DOM操作、事件处理、XHR和JSON。如果我要求你对换⼀种处理股票价格的⽅式,或者让你在页⾯中显⽰其他信息,就可以把更多的知识点包括进来。对于经验⽐较丰富应聘者,我也可以⾃如地扩展要考察的知识范围,最简单像JOSN与XML的区别、安全问题、容量问题,等等。我还希望应聘者给出的任何解决⽅案中都不要使⽤库。我想看到最原⽣态的代码,你就当页⾯中没有包含任何库。你说你对哪个库了解多少多少,但我不能把关于库的知识作为评判能⼒的因素,因为库是会随时间变化的。我需要的是真正理解库背后的机制,特别是能够徒⼿写出⼀个⾃⼰的库的⼈。做为⼀名前端⼯程师,最值得⾼兴的事莫过于解决同⼀个问题会有很多种不同的⽅法,⽽你要做的就是找出最合适的⽅法来。我在提问的时候,经常会在应聘者解释完⼀种⽅法后问他们还有没有第⼆种⽅法。此时我会跟他们说,假设你的这个⽅法由于种种原因被否决了,那么你还能不能给出另⼀种⽅法。这样做可以达到两个⽬的。⾸先,可以测试出他们是否在毫⽆意义地复述书本中的东西。不能不承认,某些⼈确实有过⽬不忘的天赋,听他们在那⾥滔滔不绝地讲,你会觉得他们什么都明⽩。可是,只要⼀跟这些⼈谈到怎么查找⽅案⽆效的原因,以及能否拿出⼀个新⽅案来,他们往往就傻眼了。这时候,如果我听到“我不明⽩这个⽅案为什么不够好”之类的反问,⼼⾥⽴刻就明⽩我的问题已经超出了他们的能⼒范围,⽽他们只是想拿⾃⼰死记硬背的结论来蒙混过关。其次,可以测试出他们已经掌握的(还是那句话,“想都不⽤想”)浏览器技术知识。如果他们对浏览器平台的核⼼知识有较好的理解,想出解决同⼀问题的不同⽅案根本没有那么难。对⼀名前端⼯程师来说,这绝对是最重要的能⼒。前端⼯程师在⼯作中遇到本该如此却并未如此的难题(说你啦,IE6),应该说是⼀件很平常的事。⼀个⽅案⽆效就⽆计可施的⼈,做不了前端⼯程师。考核应聘者解决问题能⼒的另⼀层原因,与我的个⼈喜好有关。在搞清楚应聘者知道什么不知道什么之后,我就会想着问⼀个他们知识领域之外的问题。这样做的⽬的,就是想看看他们怎样运⽤已有的知识解决新问题。在解决问题的每⼀步,我也准备了⼀些提⽰,以防有⼈会卡壳打⾉(在我⾯前15分钟⼀⾔不发,对我评价这个⼈毫⽆帮助)。我真正感兴趣的,是他们能够从上⼀步前进到下⼀步。我希望看到⼀个⼈就在我眼前学到新知识。注意:所有问题都与浏览器技术相关。我不相信出⼏道抽象的逻辑题,就能够考出某⼈解决Web技术问题的能⼒。在我看来,这⽆异于让素描⼤师画肖像(或者让刘翔跟博尔特同场竞技),没有意义,也得不到任何有价值的信息。有激情要成为⼀名优秀的前端⼯程师,最重要的莫过于对⾃⼰做的事要有激情。我们技能都不是从学校中或者从研讨会上学来的,因此前端⼯程师必须具备⾃学能⼒。浏览器技术的变化可谓⽇新⽉异,所以也只有不断提升⾃⼰的技能才做得到与时俱进。我虽然不能强迫谁必须多看博客、不断学习,但想应聘前端⼯程师的⼈恐怕还是必须这么做的。你怎么知道谁对这种⼯作有没有激情?实际上⾮常简单。我只问⼀个简单的问题:“⽬前你对什么Web技术最感兴趣?”这个问题永远不会过期,⽽且也⼏乎不可能出错……除⾮你答不上来。就眼下来说,我希望你对这个问题给出的技术中包括WebSocket、HTML、WebGL、客户端数据库,等等。只有对Web开发充满激情的⼈,才会坚持不懈地学习新知识、掌握新技能;这些⼈才是我真正想要的。当然,我会让他们详细解释⾃⼰提到的技术,以保证他们不是随⼝说了⼏个时髦的新词汇。最后⼀点计算机科学或者Web设计⽅⾯的知识当然也有⽤,但那都是基本知识之外的东西。只要基本知识在那⼉了,⼀切就都有了基础,想扩充知识⾯也不难。可是,如果等到正式上班以后,还得从头学习基本技能,那种难度是不可同⽇⽽语的。另外,⾼级前端⼯程师与⼀般⼯程师相⽐,肯定需要掌握更多的技能。⽽⾯试⼏乎没有经验⼤学毕业⽣,同样也会有⼀套完全不同的程序。我在这篇⽂章⾥列出来的都是⼀些最基本的东西。对于那些还没有多少⾯试经验的⼈,我总是喜欢告诉他们,⾯试完了只要问⾃⼰⼀个问题就⾏:你想以后跟这个⼈在⼀起共事吗?如果不管为什么,回答是不,那就是不。⾯试前端⼯程师对我来说是⼀件⾮常有意思的事,因为⾯试过程很⼤程度上也是⾃我提升的过程。⽆论⼤公司还是⼩公司,之所以在如何招聘到真正有能⼒的前端⼯程师⽅⾯会遇到同样的问题,就是因为负责招聘的那些⼈不知道⾃⼰公司需要什么样的⼈,结果问问题时也问不到点⼦上。经过这⼏年在⾏业⾥的摸索,我总结出了⾃⼰的⼀套很有效的⾯试前端⼯程的⽅法。有的应聘者说我不好对付,但留给他们这样的印象也并⾮我所愿。我觉得之所以他们说我不好对付,主要是因为我问他们问题时问得太细了。以前我曾专门写过⼀些东西,告诉应聘者怎么才能通过我的⾯试(Surviving an interview with me)以及优秀的前⾯⼯程师应该具备什么样的素质(What makes a good front end engineer?),⽽我的⾯试可以说完全是按照那两篇⽂章的标准进⾏的。我不会问⼀些特别偏门的问题,也不认为出⼏道逻辑题就能考出⼈的真实⽔平。我唯⼀的想法就是确定你能否胜任我们要招的这个职位。为此,我需要简单地考察如下⼏个⽅⾯。基本知识我们⽣活在互联⽹时代,你想知道的任何事情⼏乎都能在15分钟内找到相关信息。可是,能找到信息并不等于你会使⽤它。我认为所有前端⼯程师⾄少都应该掌握某些基本的知识,才能有效地完成⾃⼰的⼯作。如果⼀遇到问题,就停下⼯作上⽹四处搜索解决⽅案,怎么可能保证按期完成⼯作呢?听听,还有谁在说“我不知道,但我可以上⽹搜到。”请这些同学把⼿举起来,让⼤家认识⼀下(immediately raises a flagfor me.)。下⾯我列出⼀些基本的知识点,这些都是我认为⼀名前端⼯程师(⽆论⼯作年头长短)在没有任何外来帮助的情况应该知道的。DOM结构——两个节点之间可能存在哪些关系以及如何在节点之间任意移动。
DOM操作——怎样添加、移除、移动、复制、创建和查找节点。
事件——怎样使⽤事件以及IE和DOM事件模型之间存在哪些主要差别。
XMLHttpRequest——这是什么、怎样完整地执⾏⼀次GET请求、怎样检测错误。
严格模式与混杂模式——如何触发这两种模式,区分它们有何意义。
盒模型——外边距、内边距和边框之间的关系,IE 8以下版本的浏览器中的盒模型有什么不同。
块级元素与⾏内元素——怎么⽤CSS控制它们、它们怎样影响周围的元素以及你觉得应该如何定义它们的样式。
浮动元素——怎么使⽤它们、它们有什么问题以及怎么解决这些问题。
HTML与XHTML——⼆者有什么区别,你觉得应该使⽤哪⼀个并说出理由。
JSON——它是什么、为什么应该使⽤它、到底该怎么使⽤它,说出实现细节来。重申⼀下,上述这些知识点都应该是你应该“想都不⽤想”的东西。我⼀开始问的所有问题都是想摸清你对所有这些领域知识的掌握程度。虽然上⾯列出的这些知识点并没有⾯⾯俱到,但我觉得你⾄少应该掌握这些,才有可能跟我坐到⼀间办公室⾥来。
发布者:admin,转转请注明出处:http://www.yc00.com/news/1690561045a369176.html
评论列表(0条)