前端面试题整理(js)

时间:2023-12-23 23:51:31

1、HTTP协议的状态消息都有哪些?

HTTP状态码是什么

Web服务器用来告诉客户端,发生了什么事。

状态码分类:

1**:信息提示。请求收到,继续处理
2**:成功。操作成功收到,分析、接受
3**:重定向。完成此请求必须进一步处理
4**:客户端错误。请求包含一个错误语法或不能完成
5**:服务器错误。服务器执行一个完全有效请求失败

状态码详解:

100(继续):服务器收到的请求不完整,但服务器没有拒绝请求,客户端应重新发送一个完整的请求。

101(切换协议):服务器改用别的协议了

200(成功):服务器已成功处理了请求

201(已创建):请求成功并且服务器创建了新的资源

202(已接受): 服务器已接受请求,但尚未处理

203 (非授权信息) :服务器已成功处理了请求,但返回的信息可能来自另一来源。

204 (无内容): 服务器成功处理了请求,但没有返回任何内容。

205 (重置内容): 服务器成功处理了请求,但没有返回任何内容。

206 (部分内容): 服务器成功处理了部分 GET 请求。

300 (多种选择): 针对请求,服务器可执行多种操作。 服务器可根据请求者 (user agent) 选择一项操作,或提供操作列表供请求者选择。

301 (永久移动): 请求的网页已永久移动到新位置。 服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置。

302 (临时移动): 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。

303 (查看其他位置): 请求者应当对不同的位置使用单独的 GET 请求来检索响应时,服务器返回此代码。

304 (未修改): 自从上次请求后,请求的网页未修改过。 服务器返回此响应时,不会返回网页内容。

305 (使用代理): 请求者只能使用代理访问请求的网页。 如果服务器返回此响应,还表示请求者应使用代理。

307 (临时重定向): 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。

400 (错误请求): 服务器不理解请求的语法。

401 (未授权): 请求要求身份验证。 对于需要登录的网页,服务器可能返回此响应。

403 (禁止): 服务器拒绝请求。

404 (未找到): 服务器找不到请求的网页。

405 (方法禁用): 禁用请求中指定的方法。

406 (不接受): 无法使用请求的内容特性响应请求的网页。

407 (需要代理授权): 此状态代码与 401(未授权)类似,但指定请求者应当授权使用代理。

408 (请求超时): 服务器等候请求时发生超时。

409 (冲突): 服务器在完成请求时发生冲突。 服务器必须在响应中包含有关冲突的信息。

410 (已删除): 如果请求的资源已永久删除,服务器就会返回此响应。

411 (需要有效长度): 服务器不接受不含有效内容长度标头字段的请求。

412 (未满足前提条件): 服务器未满足请求者在请求中设置的其中一个前提条件。

413 (请求实体过大): 服务器无法处理请求,因为请求实体过大,超出服务器的处理能力。

414 (请求的 URI 过长): 请求的 URI(通常为网址)过长,服务器无法处理。

415 (不支持的媒体类型): 请求的格式不受请求页面的支持。

416 (请求范围不符合要求): 如果页面无法提供请求的范围,则服务器会返回此状态代码。

417 (未满足期望值): 服务器未满足"期望"请求标头字段的要求。

500 (服务器内部错误) 服务器遇到错误,无法完成请求。

501 (尚未实施) 服务器不具备完成请求的功能。 例如,服务器无法识别请求方法时可能会返回此代码。

502 (错误网关) 服务器作为网关或代理,从上游服务器收到无效响应。

503 (服务不可用) 服务器目前无法使用(由于超载或停机维护)。 通常,这只是暂时状态。

504 (网关超时) 服务器作为网关或代理,但是没有及时从上游服务器收到请求。

505 (HTTP 版本不受支持) 服务器不支持请求中所用的 HTTP 协议版本。

常见的状态码(只要记住这些就可以了):

200——服务器已成功处理了请求

301——请求的网页已永久移动到新位置。 服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置。

404——服务器找不到请求的网页。

500——服务器遇到错误,无法完成请求。

503——服务器目前无法使用(由于超载或停机维护)。 通常,这只是暂时状态。

504——服务器作为网关或代理,但是没有及时从上游服务器收到请求。

2、AJAX是什么? AJAX的交互模型(流程)? AJAX跨域的解决办法?

AJAX = 异步 JavaScript 和 XML(Asynchronous JavaScript and XML)。简短地说,在不重载整个网页的情况下,AJAX 通过后台加载数据,并在网页上进行显示。

AJAX的工作原理相当于在用户和服务器之间加了一个中间层,使用户操作与服务器相应异步化。并不是所有的用户请求都提交给服务器,像一些数据验证和数据处理等都交给AJAX引擎自己来做,只有确定需要从服务器读取新数据时再由AJAX引擎代为向服务器提交请求。

aaarticlea/png;base64,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" alt="" />

跨域问题,可以实用jquery的jsonp来处理:

$(document).ready(function(){
var url='http://localhost:8080/WorkGroupManagment/open/getGroupById"
+"?id=1&callback=?';
$.ajax({
url:url,
dataType:'jsonp',//重点
processData: false,
type:'get',
success:function(data){
alert(data.name);
},
error:function(XMLHttpRequest, textStatus, errorThrown) {
alert(XMLHttpRequest.status);
alert(XMLHttpRequest.readyState);
alert(textStatus);
}});
});

3、同步和异步的区别?

举个例子:普通B/S模式(同步)——AJAX技术(异步)

同步:提交请求->等待服务器处理->处理完毕返回 这个期间客户端浏览器不能干任何事

异步: 请求通过事件触发->服务器处理(这是浏览器仍然可以作其他事情)->处理完毕

4、简述JavaScript封装。

JS封装就是尽量把使用的方式简单化,内部逻辑和使用解耦。通俗的说就是使用的时候只需要知道参数和返回值,其他条件尽量不要使用人员进行设置。

函数形式:

function taojiaqu(a,b){
//内部对a,b进行处理
}

对象形式:

function taojiaqu(a,b){
this.x=a;
this.y=b;
}
var tjq = new taojiaqu(1,2);//通过面向对象的方式
alert(tjq.x)

闭包形式:

function tjq(a,b){
var k = 1;
return function tt(){
k++;
return k;
}
}
var u = kk(1,2);
u();//闭包实现累加 k=2
u();//闭包实现累加 k=3
alert(u());//弹出4

5、JavaScript继承。

对象冒充:

function tjq(username){
this.username = username;
this.hello = function(){
alert(this.username);
}
}
function taojiaqu(username,password){
//通过以下3行实现将tjq的属性和方法追加到taojiaqu中,从而实现继承
//1:this.method是作为一个临时的属性,并且指向tjq所指向的对象,
//2:执行this.method方法,即执行tjq所指向的对象函数
//3:销毁this.method属性,即此时taojiaqu就已经拥有了tjq的所有属性和方法
this.method = tjq;
this.method(username);//最关键的一行
delete this.method; this.password = password;
this.world = function(){
alert(this.password);
}
}
var parent = new tjq("tjq");
var child = new taojiaqu("taojiaqu","123456");
parent.hello(); //弹出tjq
child.hello(); //弹出taojiaqu
child.world(); //弹出123456

call()方法方式

function tjq(username){
this.username = username;
this.hello = function(){
alert(this.username);
}
}
function taojiaqu(username,password){
//语法:call([thisObj[,arg1[, arg2[, [,.argN]]]]])
//定义:调用一个对象的一个方法,以另一个对象替换当前对象。
tjq.call(this,username); this.password = password;
this.world = function(){
alert(this.password);
}
}
var parent = new tjq("tjq");
var child = new taojiaqu("taojiaqu","123456");
parent.hello(); //弹出tjq
child.hello(); //弹出taojiaqu
child.world(); //弹出123456

apply方法方式:

function tjq(username){
this.username = username;
this.hello = function(){
alert(this.username);
}
}
function taojiaqu(username,password){
//语法:apply([thisObj[,argArray]])
//定义:应用某一对象的一个方法,用另一个对象替换当前对象。
//跟call基本一个意思,只是第二个参数必须是数组
tjq.apply(this,[username]); this.password = password;
this.world = function(){
alert(this.password);
}
}
var parent = new tjq("tjq");
var child = new taojiaqu("taojiaqu","123456");
parent.hello(); //弹出tjq
child.hello(); //弹出taojiaqu
child.world(); //弹出123456

原型链方式:

function tjq(){}
tjq.prototype.username='taojiaqu';
tjq.prototype.sayUsername=function(){
alert(this.username);
}
function taojiaqu(){}
taojiaqu.prototype=new tjq();//将tjq中将所有通过prototype追加的属性和方法都追加到taojiaqu,从而实现了继承
taojiaqu.prototype.password='123456';
taojiaqu.prototype.sayPassword=function(){
alert(this.password);
}
var parent = new taojiaqu();
parent.sayUsername(); //弹出taojiaqu
parent.sayPassword(); //弹出123456

混合方式(原型链+call()):

function tjq(username){
this.username=username;
}
tjq.prototype.sayUsername=function(){
alert(this.username);
}
function taojiaqu(username){
tjq.call(this,username);//将tjq属性继承过来
this.password='123456';
this.sayPassword=function(){
alert(this.password);
}
}
taojiaqu.prototype=new tjq();//将tjq原型链方法继承过来
var parent = new taojiaqu('taojiaqu');
parent.sayUsername(); //弹出taojiaqu
parent.sayPassword(); //弹出123456

6、什么是闭包?

官方对闭包的解释是:一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分。闭包的特点:

1. 作为一个函数变量的一个引用,当函数返回时,其处于激活状态。
2. 一个闭包就是当一个函数返回时,一个没有释放资源的栈区。
简单的说,javascript允许使用内部函数---即函数定义和函数表达式位于另一个函数的函数体内。而且,这些内部函数可以访问它们所在的外部函数中声明的所有局部变量、参数和声明的其他内部函数。当其中一个这样的内部函数在包含它们的外部函数之外被调用时,就会形成闭包。
以下两端代码都能依次点击弹出0,1,2,3...
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>js闭包</title>
<style>
*{margin: 0;padding: 0;}
li{line-height: 30px;background: red;border-bottom: 1px solid #000}
</style>
</head>
<body>
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
</ul>
</body>
</html>
<script>
window.onload=function(){
var olis=document.getElementsByTagName('li');
for(var i=0;i<olis.length;i++){
eventClick(olis,i);
}
}
function eventClick(obj,i){
return obj[i].onclick=function(){
alert(i);
}
} </script>
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>js闭包</title>
<style>
*{margin: 0;padding: 0;}
li{line-height: 30px;background: red;border-bottom: 1px solid #000}
</style>
</head>
<body>
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
</ul>
</body>
</html>
<script>
window.onload=function(){
var olis=document.getElementsByTagName('li');
for(var i=0;i<olis.length;i++){
(function(i){
olis[i].onclick=function(){
alert(i);
};
})(i);
}
}
</script>

由于闭包可以把变量参数存于内存当中,即使你跳转页面也还会存在,这就引发了内存泄漏,除非你关闭浏览器,它才会自动释放