1.介绍一下标准的CSS的盒子模型?与低版本IE的盒子模型有什么不同的?
答:标准的盒子模型有内容、填充、边框、外边距。低版本的内容包括填充和边框,也就是高度=内容+边框+填充
2. HTML5有哪些新特性?
答:新增iframe、header、main、aside、floor、article等语义化标签
新增form表单属性和元素
新增视频和音频
新增canvas
新增拖放事件
新增webstorage本地离线存储
新增websoket网络套节字
webworker
缓冲
https://developer.mozilla.org/zh-CN/docs/Web/Guide/HTML/HTML5
3. 在你以往的项目中是如何进行移动端适配的,请简要说明。
视口:1vw等于视口宽度的1%,750px=100%,1%=750/100=7.5px,即1vw=7.5px 所以:13.33333vw*7.5px=100px,此时根元素的字体大小等于100px; 假如某个字体大小100px。100px/根字体大小(100px)=1rem; 所以此时1rem = 100px
rem参考:http://caibaojian.com/rem-and-px.html
4. 什么是响应式设计?响应式设计的基本原理是什么?
答:同一网页能够随着不同屏幕分辨率有不同的变化。十二栅格
5. margin和padding分别适合什么场景使用?
margin:
需要在border外侧添加空白时;
空白处不需要背景(色)时;
上下相连的两个盒子之间的空白,需要相互抵消时。
padding:
需要在border内测添加空白时;
空白处需要背景(色)时;
上下相连的两个盒子之间的空白,希望等于两者之和时
6. var a='aa'function fn(){alert(a);var a='bb';alert(a);} fn();以上输出的结果是什么?
undefined bb。首先进行解析函数作用域,因为有var 关键字所以解析a变量,只会在函数作用域内解析。会覆盖外边的全局变量a
https://segmentfault.com/a/1190000018344949 //var和let
7. 你如何获取浏览器URL中查询字符串中的参数。
const getURLParameters = url=>
(url.match(/([^?=&]+)(=([^&]*))/g) || []).reduce(
(a, v) => ((a[v.slice(0, v.indexOf('='))] = v.slice(v.indexOf('=') + 1)), a),
{}
);
// Examples
getURLParameters('http://url.com/page?n=Adam&s=Smith'); // {n: 'Adam', s: 'Smith'}
getURLParameters('google.com'); // {}
8. 同步和异步的区别?
9. 猜猜如下题目的结果? function Timer(){ this.s1 = 0; this.s2 = 0; setInterval(()=>this.s1++, 1000);
setInterval(function(){
this.s2++;
},1000); } var timer = new Timer();
setTimeout(()=>console.log('s1:',timer.s1),3100);
setTimeout(()=>console.log('s2:',timer.s2),3100);
答: 3 0
10. 统计字符串中每个字母个数,并找出个数最多的字母将其输出。var str = "aaaabbbccccddfgh";
## 面试题地址
1、 FE-Interview https://poetries1.gitee.io/fe-interview/docs/base.html