1、背景css
2019.9.16参加了个人第一个前端面试,投递的公司是字节跳动(上海),简历投出一周后被通知参加视频面试,如下为部分面试题。html
1.flex布局怎样实现页面固定?前端
容器属性css3
元素属性面试
0
,即若是存在剩余空间,也不放大。若是全部项目的flex-grow属性都为1,则它们将等分剩余空间(若是有的话)。若是一个项目的flex-grow属性为2,其余项目都为1,则前者占据的剩余空间将比其余项多一倍。width
或height
属性同样的值(好比350px),则项目将占据固定空间。
Ajax是Asynchronous JavaScript and XML的缩写,意思就是用JavaScript执行异步网络请求。数据库
参考连接:https://www.liaoxuefeng.com/wiki/1022910821149312/1023022332902400api
1 var xml=new XMLHttpRequest();
1 xml.open("Get/Post", "url", true/false);//true为异步,false为同步
1 xml.send(null);//GET请求 2 xml.send(string);//POST请求
1 var xml=new XMLHttpRequest(); // 新建XMLHttpRequest对象 2 3 xml.onreadystatechange = function () { // 状态发生变化时,函数被回调 4 if (xml.readyState === 4) { // 成功完成 5 // 判断响应结果: 6 if (xml.status === 200) { 7 // 成功,经过responseText拿到响应的文本: 8 return success(xml.responseText); 9 } else { 10 // 失败,根据响应码判断失败缘由: 11 return fail(xml.status); 12 } 13 } else { 14 // HTTP请求还在继续... 15 } 16 } 17 18 // 发送请求: 19 xml.open('GET', '/api/categories'); 20 xml.send(); 21 22 alert('请求已发送,请等待响应...');
追问:GET和POST的区别数组
参考连接:http://www.javashuo.com/article/p-yvklfivs-mw.html浏览器
3.JS经常使用事件有哪些?缓存
参考连接:https://www.w3school.com.cn/jsref/jsref_events.asp
属性 | 当如下状况发生时,出现此事件 |
---|---|
onabort | 图像加载被中断 |
onblur | 元素失去焦点 |
onchange | 用户改变域的内容 |
onclick | 鼠标点击某个对象 |
ondblclick | 鼠标双击某个对象 |
onerror | 当加载文档或图像时发生某个错误 |
onfocus | 元素得到焦点 |
onkeydown | 某个键盘的键被按下 |
onkeypress | 某个键盘的键被按下或按住 |
onkeyup | 某个键盘的键被松开 |
onload | 某个页面或图像被完成加载 |
onmousedown | 某个鼠标按键被按下 |
onmousemove | 鼠标被移动 |
onmouseout | 鼠标从某元素移开 |
onmouseover | 鼠标被移到某元素之上 |
onmouseup | 某个鼠标按键被松开 |
onreset | 重置按钮被点击 |
onresize | 窗口或框架被调整尺寸 |
onselect | 文本被选定 |
onsubmit | 提交按钮被点击 |
onunload | 用户退出页面 |
4.怎样绑定和解绑事件?
参考连接:http://www.javashuo.com/article/p-riknxqwx-bv.html
1 <input onclick="myAlert()" type="button" value="点击我,弹出警告框" />
2 function myAlert(){ 3 alert("DOM元素中直接绑定"); 4 }
1 <input id="btn" type="button" value="点击我,弹出警告框" />
2 document.getElementById("btn").onclick=function(){ 3 alert("JavaScript代码中绑定"); 4 }
1 <input id="btn" type="button" value="点击我,弹出警告框" />
2 document.getElementById("btn").addEventListener("click",fun);
3 function fun(){
4 alert("绑定事件监听函数");
5 }
1 document.getElementById("btn").onclick=false/null;
1 document.getElementById("btn").removeEventListener("click",fun);
5.z-index的值能够取0或负数吗?
参考连接:https://blog.csdn.net/lhjuejiang/article/details/80945334
能够取0或负值。z-index负值能够隐藏元素,只须要层叠上下文内的某一个父元素加个背景色就能够。它与clip隐藏想必的一个优点是:元素无须绝对定位,设置position:relative就能够隐藏,另外一个优点是它对原来的布局以及元素的行为没有任何影响。而clip隐藏会致使空间focus的焦点发生细微的变化,在特定条件下是有体验问题的。它的不足之处就是不具备广泛适用性,须要其余元素配合进行隐藏。
6.px、em和rem的区别,rem怎样使用?
参考连接:https://blog.csdn.net/qq_36150631/article/details/80500770
1 #box{ 2 font-size:14px; 3 width:10em; 4 } 5 <div id="box">div的宽度为140px</div>
1 html{ 2 font-size:14px; 3 #box{ 4 width:10rem; 5 } 6 <div id="box">div的宽度为140px</div>
假定一个数组arr的元素从左到右依次是负数、零和正数。请打印出最后一个负数和第一个正数出现的位置。如arr=[-2,-1,0,0,0,0,1,2] 最后一个负数的位置是2,第一个正数的位置是7。如下是个人代码:
1 var arr=[-2,-1,0,0,0,0,1,2]; 2 var a,b; 3 for(var i=0;i<arr.length;i++){ 4 if(arr[i]<0){ 5 a=arr.indexOf(arr[i])+1; 6 }else if(arr[i]>0){ 7 b=arr.indexOf(arr[i])+1; 8 break; 9 } 10 } 11 console.log('最后一位负数位置'+a+'第一位正数位置'+b);
面试官建议用二分法从中间开始查找,以减小for循环的次数
多是我运气好,也多是面试官看我是零基础转行,因此出的题比较基本并不难。我回答错误的地方面试官很耐心地纠正,在这表示感谢。