前端八股文整理【1】
1、写出你知道的所有HTTP返回状态值,并说明用途(比如404:找不到页面)
题解:
- Http状态码一览表
| 状态码 | 用途 |
|---|---|
| 1xx | 请求收到,继续处理 |
| 2xx | 操作成功收到,分析,接受 |
| 3xx | 完成此请求必须进一步处理 |
| 4xx | 请求包含一个错误语法或不能完成 |
| 5xx | 服务器执行一个完全有效请求失败 |
- 常用的有
| 状态码 | 用途 |
|---|---|
| 200 | 成功访问,正常访问 |
| 301 | 永久重定向 |
| 302 | 临时重定向 |
| 400 | 域名绑定错误(服务器上域名未绑定成功) |
| 403 | 没有访问权限 |
| 404 | 文件或者目录不存在 |
| 500 | 程序或服务器错误 |
| 503 | 服务器超时 |
2、如何终止ajax请求?
题解:
使用abort()方法,可终止ajax请求。
3、target和currentTarget的区别?
题解:
-
- target:触发事件的元素。
currentTarget:事件绑定的元素。
- target:触发事件的元素。
-
- 两者在没有冒泡的情况下,是一样的值,但在用了事件委托的情况下,就不一样了
-
- 例如:
//事件委托
- fsda
- ewre
- qewe
- xvc
- 134
currentTarget始终是监听事件者,而target是事件的真正发出者。
4、事件捕获与事件冒泡
题解:
- 事件捕获是从上到下,事件冒泡是从下到上
最外层的元素
中间的元素
最里面的元素
点击最里面的元素后,输出的结果,如下:
上文中的true和false表示的:
- 选择true,程序采用事件捕获形式,程序由外到里执行
- 选择false,程序采用事件冒泡形式,程序由里到外执行
阻止事件冒泡:
document.getElementById("c").onclick = function(e){
e.stopPropagation();
console.log("c");
}
把要冒泡的代码,添加e.stopPropagation();阻止就可以完成了,在微信小程序里,把bindTap改成catchTap。
5、写出div的样式,绘制一个三角形
题解:
.a{
border-style:solid;
border-width:0px 0px 100px 100px;
border-color:transparent transparent blue transparent;
width:0px;
height:0px;
}
6、vue有哪些生命周期,异步请求适合在哪些生命周期?
-
Vue2中生命周期
beforeCreate ——》created ——》beforeMount ——》mounted ——》beforeUpdate ——》beforeDestroy ——》destroyed -
Vue3中生命周期
setup() ——》onBeforeMount ——》onMounted ——》onBeforeUpdate ——》onUpdated ——》onBeforeUnmount ——》 onUnmounted ——》onErrorCaptured ——》onRenderTracked ——》onRenderTriggered ——》onActivated——》onDeactivated
7、一个数列1、2、3、5、8....写出js函数第n位的数是多少?
题解:
// f(n) = f(n-1)+f(n-2)
//方法一
function fn(n){
if(n==1|n==2){
return 1;
}
//因为斐波那契数列格式为:1、1、2、3、5、8、13、21...,n=1和n=2的时候都是输出1
return fn(n-1)+fn(n-2);
//不断调用自身函数,n-1是穿进去的参数的前一次,就是最后n的前一个数字。所以n-2是最后传入参数的前两个字数。
}
//用函数写出斐波那契数列
//方法二
var n = parseInt(prompt('请输入一个数字'));
var a1 = 1;
var a2 = 2;
var a3 = 0;
for(var i =2;i
8、如何只用容积分别为5升和6升的2个空水壶,从池塘里取得3升的水?
题解:
1、先用5升的水壶装满水,倒入六升的水壶中,六升的水壶中还空出 一升水体积。
2、再用把盛五升水水壶装满水,倒入容积六升的水壶中,壶中还剩4升水。
3、把容积六升水中的水倒掉,再把容积五升的水壶倒满水,把这些水倒入容积六升的壶中,容积五升的水壶中这时刚好剩下三升水。
9、五个硬币,每个硬币和其它四个相接触