1、阅读简历
...
2、面试问题准备
2.1、html部分
1、什么是H5?
2、html语义化的含义和意义?
提示:用正确的标签做正确的事情。
html语义化让页面的内容结构化,结构更清晰,便于对浏览器、搜索引擎解析;
即使在没有样式CSS情况下也以一种文档格式显示,并且是容易阅读的;
搜索引擎的爬虫也依赖于HTML标记来确定上下文和各个关键字的权重,利于SEO;
使阅读源代码的人对网站更容易将网站分块,便于阅读维护理解。
2.2、css部分
1、css绘制圆形、三角形、梯形等;
提示:none
2、position的取值有哪些?relative、absolute、fixed有哪些区别?
提示:文档流模型
3、怎样让文字从上到下显示——例如古诗形式的?
提示:利用折行
书写模式:writing-mode:lr-tb或writing-mode:tb-rl
4、图片最大化居中裁剪的几种方案?
提示:background、css嵌套、object-fit
5、元素居中的一些主要方法?
提示:*
6、css命名和书写需要注意的地方?(规范)
提示:使用外部文件、不用下划线命名、减少父子关系、少用id
7、页面导入样式时,使用link和@import有什么区别?
提示:1)link属于XHTML标签,除了加载CSS外,还能用于定义RSS, 定义rel连接属性等作用;而@import是CSS提供的,只能用于加载CSS;
2)页面被加载的时,link会同时被加载,而@import引用的CSS会等到页面被加载完再加载;
3)import是CSS2.1 提出的,只在IE5以上才能被识别,而link是XHTML标签,无兼容问题;
8、什么是外边距合并?
提示:取较大值
9、如何去掉滚动条?
提示:布局长度控制
2.3、js部分
1、如何将一个字符串的每个字符用下划线链接起来?
提示:split、join
2、程序中缓存数据的方式
提示:局部变量、全局变量、localStorage、cookie、sessionStorage
3、什么是闭包(closure),为什么要用它?
提示:闭包是指有权访问另一个函数作用域中变量的函数,创建闭包的最常见的方式就是在一个函数内创建另一个函数,通过另一个函数访问这个函数的局部变量,利用闭包可以突破作用链域,将函数内部的变量和方法传递到外部。
闭包的特性:
1.函数内再嵌套函数
2.内部函数可以引用外层的参数和变量
3.参数和变量不会被垃圾回收机制回收
4、如何执行字符串形式的js代码?
提示:eval(string)
5、什么是事件委托?
提示:事件委托就是利用事件冒泡,只指定一个事件处理程序,就可以管理某一类型的所有事件
6、ajax有没有破坏js单线程机制
提示:
1、浏览器的四个线程:GUI渲染线程、javascript引擎线程、浏览器事件触发线程、HTTP请求线程
2、回调和任务队列(任务队列中的任务是平等的)
2.4、框架部分部分
1、bootstrap的主要特点是什么?
提示:栅格系统、响应式布局
2、react的主要特点
提示:声明式渲染、基于组件
3、react和react native的区别?
提示:
4、react和vue的区别?
提示:
5、vue的主要特点
提示:响应的数据绑定和组合的视图组件
6、Angular、vue、react的路由的实现原理?他们最大的特点分别是什么?
提示:
2.5、综合(其他)
1、Ajax是什么?Ajax解决浏览器缓存问题?
提示:添加随机数、设置请求无cache或者立即更新
2、网页适配pc和mobile的一些方式?
提示:js计算设定固定大小、媒体查询
3、什么是“前端路由”?什么时候适合使用“前端路由”? “前端路由”有哪些优点和缺点?前端路由的实现原理?
4、一个页面从输入 URL 到页面加载显示完成,这个过程中都发生了什么?
提示:注:这题胜在区分度高,知识点覆盖广,再不懂的人,也能答出几句,
而高手可以根据自己擅长的领域自由发挥,从URL规范、HTTP协议、DNS、CDN、数据库查询、
到浏览器流式解析、CSS规则构建、layout、paint、onload/domready、JS执行、JS API绑定等等;
详细版:
1、浏览器会开启一个线程来处理这个请求,对 URL 分析判断如果是 http 协议就按照 Web 方式来处理;
2、调用浏览器内核中的对应方法,比如 WebView 中的 loadUrl 方法;
3、通过DNS解析获取网址的IP地址,设置 UA 等信息发出第二个GET请求;
4、进行HTTP协议会话,客户端发送报头(请求报头);
5、进入到web服务器上的 Web Server,如 Apache、Tomcat、Node.JS 等服务器;
6、进入部署好的后端应用,如 PHP、Java、JavaScript、Python 等,找到对应的请求处理;
7、处理结束回馈报头,此处如果浏览器访问过,缓存上有对应资源,会与服务器最后修改时间对比,一致则返回304;
8、浏览器开始下载html文档(响应报头,状态码200),同时使用缓存;
9、文档树建立,根据标记请求所需指定MIME类型的文件(比如css、js),同时设置了cookie;
10、页面开始渲染DOM,JS根据DOM API操作DOM,执行事件绑定等,页面显示完成。
简洁版:
浏览器根据请求的URL交给DNS域名解析,找到真实IP,向服务器发起请求;
服务器交给后台处理完成后返回数据,浏览器接收文件(HTML、JS、CSS、图象等);
浏览器对加载到的资源(HTML、JS、CSS等)进行语法解析,建立相应的内部数据结构(如HTML的DOM);
载入解析到的资源文件,渲染页面,完成。
5、对称加密和非对称加密分别是什么?
提示:公钥、私钥
6、用户注册登录时怎样记住密码?
提示:(包含加密方式)
2.6、算法
1、简述二分查找的基本原理?
提示:
2、数字数组的长度为98,内容为1到100,求缺失的两个数;
提示:
3、m人围一圈,从第一个人开始数第n个人踢出,再从第n+1个人开始数第n个人踢出,以此类推,知道剩下一个人,请问他的初始编号;
提示: