前端面试题整理(js)
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、什么是闭包?
官方对闭包的解释是:一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分。闭包的特点:
<!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>
由于闭包可以把变量参数存于内存当中,即使你跳转页面也还会存在,这就引发了内存泄漏,除非你关闭浏览器,它才会自动释放。
前端面试题整理(js)的更多相关文章
- 前端面试题整理---JS基础
为了督促自己学习,整理了一下前端的面试题 JavaScript: JavaScript 中如何监测一个变量是String类型? typeof(obj)==="string"; ty ...
- 好程序员分享Web前端面试题汇总JS篇之跨域问题
为什么80%的码农都做不了架构师?>>> 好程序员分享Web前端面试题汇总JS篇之跨域问题,接着上一篇文章我们继续来探讨web前端面试必备面试题. 跨域解决方案 1. 通过jso ...
- 【web前端面试题整理02】前端面试题第二弹袭来,接招!
前言 今天本来准备先了解下node.js的,但是,看看我们一个小时前与一个小时后的差距: 既然如此,我们继续来搜集我们的前端面试题大业吧!!! 特别感谢玉面小肥鱼提供哟,@玉面小飞鱼 题目一览 Jav ...
- 各大互联网公司前端面试题(js)
对于巩固复习js更是大有裨益. 初级Javascript: 1.JavaScript是一门什么样的语言,它有哪些特点? 没有标准答案. 2.JavaScript的数据类型都有什么? 基本数据类型 ...
- 【web前端面试题整理06】成都第一弹,邂逅聚美优品
前言 上周四回了成都,休息了一下下,工作问题还是需要解决的,于是今天去面试了一下,现在面试回来了,我感觉还是可以整理一下心得. 这个面试题整理系列是为了以后前端方面的兄弟面试时候可以得到一点点帮助,因 ...
- 【web前端面试题整理08】说说最近几次面试(水)
为什么换工作 换工作简单来讲一般会归纳为钱不够或者人不对,我们团队氛围很不错,所以基本就定位到钱不够了,而我更多是考虑到以后的职业发展,简单说来就是对以后几年的工作有想法,而这种想法实现不一定能在现在 ...
- 2019届校招前端面试题整理——HTML、CSS篇
前言 2019届校招陆陆续续开始了,整理了一些高频的面试题. HTML部分 1. 什么是<!DOCTYPE>? DOCTYPE是html5标准网页声明,且必须声明在HTML文档的第一行.来 ...
- 【web前端面试题整理03】来看一点CSS相关的吧
前言 昨天我们整理了14到js的题,今天我们再来整理14到CSS相关的题目,昨天整理时候时间有点晚了我便有点心浮气躁,里面的一些题需要再次解答,好了看看今天有些什么吧. PS:我这里挑一点来做就好了, ...
- 【web前端面试题整理01】各位加班累了吧,来做点前端面试题吧
前言 最近小叶子有点疲惫,主要是在外地工作生活上不太适应,吃一样的东西,我居然会拉肚子,而且是一个星期一个星期的.... 脸上长了一个豆豆一个星期还没消,我那个去啊. 昨天上午上班后,本来想继续研究j ...
随机推荐
- python--help
python help 学习python的过程中,难免遇到一些生疏的东西,为此需要参看相关的文档说明. Linux下众所周知有man可以查找系统的命令帮助页:对于python也提供了自己的帮助文档的2 ...
- linux基础随笔
磁盘管理 sda s:磁盘接口的类型(sata scsci sas) d:驱动器(drive) a:(第一块磁盘,同理b第二块磁盘)hda h:ide接口 第一块磁盘的第一个分区:sda1 mount ...
- cocos2dx进阶学习之坐标转换
在cocos2dx中,有四种坐标系 GL坐标系:左下为原点,x轴向右,y轴向上 UI坐标系:左上为原点,x轴向右,y轴向下 世界坐标系:与GL坐标系相同 本地坐标系:是节点(CCNode)的坐标系,原 ...
- ArcGIS Engine 改变线IPolyline的方向
有时候需要改变一下线的方向来组成要要的图形,可以按一下方法来变换一下. 如果看官有好的方法的话,请不吝贴上为谢! private IPolyline ChangeDirection(IPolyline ...
- C++之字符串分割函数split
c++之字符串分割: /* *c++之字符串分割: */ #include <iostream> #include <string> #include <vector&g ...
- PHP - 继承 - 子类使用父类方法
<?php class ShopProduct { private $FirstName; private $LastName; private $Title; private $Price; ...
- ubuntu安装ulipad
以下内容部分我是从其他地方找的,并且做了适当的修改,亲身测试可以安装成功 在安装ulipad之前,先安装一个超级好用的Python的交互式Shell--iPython.iPython功能很强大, ...
- javascript 学习随笔6
改变html内容 document.getElementById("p1").innerHTML="New text!"; var element=docume ...
- android:music
package com.terry; import java.io.File; import java.io.FileFilter; import java.io.IOException; impor ...
- JQuery插件使用小结
JQuery插件使用小结