我的美团面试
来源:互联网 发布:淘宝大学一飞 编辑:程序博客网 时间:2024/04/28 17:28
1 在<ul id="test"></ul>中添加<li>1</li><li>2</li><li>3</li>
$(document).ready(function(){
var ul = document.getElementById("test");
var li;
var textNode;
for(var i=0;i<30;i++){
li= document.createElement("li");
textNode=document.createTextNode(i+1);
li.appendChild(textNode);
ul.appendChild(li);
}
});
<ul id="test">
</ul>
2 在第一题的基础上实现点击哪个li,弹出对应信息
$(document).ready(function(){
var EventUtil={
addHandler:function(element,type,handler){
if(element.addEventListener){
console.log("非IE浏览器,如火狐类的!");
element.addEventListener(type,handler,false);
}else if(element.attachEvent){
console.log("IE");
element.attachEvent("on"+type,handler);
handler.call(element);
}else{
console.log("其他");
element["on"+type]=handler;
}
},
removeHandler:function(element,type,handler){
if(element.removeEventListener){
element.removeEventListener(type,handler,false);
}else if(element.detachEvent){
element.detachEvent("on"+type,handler);
}else{
elemetn["on"+type]=null;
}
},
getEvent:function(event){
return event?event:window.event;
},
getTarget:function(event){
return event.target||event.srcElement; //event.srcElement为IE中的对象
}
};
var ulListner=document.getElementById("test");
EventUtil.addHandler(ulListner, "click", function(event){
event=EventUtil.getEvent(event);
var target=EventUtil.getTarget(event);
if(target.tagName.toLowerCase()==='li'){
var _v=target.textContent||target.innerText;
console.log(_v);
alert(_v);
}
});
});
<ul id="test">
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
</ul>
3 写一下原生ajax过程
<script type="text/javascript">
//参考网址 http://abstractforever.iteye.com/blog/524148
function getVerify(){//校验
var xhr=createXHR();
var userName = document.getElementById("userName").value;//获取用户名字
console.log(userName);
//xhr.onreadystatechange=callback;//注册回调函数
xhr.onreadystatechange=function(){
if(xhr.readyState==4){//完成,已经接受到全部响应数据,而且已经在客户端使用
if(xhr.status==200){
var responseText=xhr.responseText;
var divNode=document.getElementById("result");
divNode.innerHTML=responseText;
}
}
};
xhr.open("GET", "servlet/UserServlet?username="+userName, true);//true表示异步
//同步方式下,send这句话会在服务器段数据回来后才执行完
//异步方式下,send这句话会立即完成执行
xhr.send(null);
}
function postVerify(){//校验
var xhr=createXHR();
var userName = document.getElementById("userName").value;//获取用户名字
console.log(userName);
//xhr.onreadystatechange=callback;//注册回调函数
xhr.onreadystatechange=function(){
if(xhr.readyState==4){//完成,已经接受到全部响应数据,而且已经在客户端使用
if(xhr.status==200){
var responseText=xhr.responseText;
var divNode=document.getElementById("result");
divNode.innerHTML=responseText;
}
}
};
xhr.open("POST", "servlet/UserServlet", true);//true表示异步
//POST方式需要自己设置http的请求头
xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
//POST方式发送数据
xhr.send("username=" + userName);
}
function createXHR(){
var xmlHttpRequest=null;
if(window.XMLHttpRequest){//针对FireFox,Mozillar,Opera,Safari,IE7,IE8
console.log("XMLHttpRequest对象");
xmlHttpRequest=new XMLHttpRequest();
}else if(window.ActiveXObject){ // //针对IE6,IE5.5,IE5
console.log("ActiveXObject对象");
//两个可以用于创建XMLHTTPRequest对象的控件名称,保存在一个js的数组中
//排在前面的版本较新
var activexName = [ "MSXML2.XMLHTTP", "Microsoft.XMLHTTP" ];
for ( var i = 0; i < activexName.length; i++) {
try {
//取出一个控件名进行创建,如果创建成功就终止循环
//如果创建失败,回抛出异常,然后可以继续循环,继续尝试创建
xmlHttpRequest = new ActiveXObject(activexName[i]);
break;
} catch (e) {
}
}
}else{
alert("创建对象失败!");
}
return xmlHttpRequest;
}
</script>
</head>
<body>
<input type="text" name="userName" id="userName"/>
<input type="button" onclick="getVerify()" value="get验证"/>
<input type="button" onclick="postVerify()" value="post验证"/>
<br/>
结果为(get的结果可能为乱码,Post传递参数没有乱码):
<div id="result">
</div>
</body>
后台界面为:
response.setContentType("text/html");
String username = request.getParameter("username");
response.setCharacterEncoding("UTF-8");
PrintWriter out = response.getWriter();
// 将数据返回给页面
out.print("" + username + "----可以使用");
4 说一下状态码
100继续,一般在发送post请求时,已发送了http header之后服务端将返回此消息,表示确认,之后发送具体参数信息;
200正常返回信息
201请求已经被实现,而且有一个新的资源已经依据请求的需要而建立,且其 URI 已经随Location 头信息返回。
202服务器已经接受请求,但还未处理
301请求的网页已永久移到新位置
302临时性重定向
303临时性重定向,且总是使用GET请求新的URI
304自上次请求后,请求的网页未修改过
400服务器无法理解请求的格式,客户端不应当尝试再次使用相同的内容发起请求。
401请求未授权
403禁止访问
404找不到如何与URI相匹配的资源
500服务器错误
503服务器暂时无法处理请求(可能是过载或维护)
5 输出:
var Obj={v1:"ttt",
te:function(){
console.log(this.v1);
console.log(this);
}
}
Obj.te();//
结果为:
ttt
Object { v1="ttt", te=function()}
6 说一下三次握手的过程
参考了Simple life的博客,网址:http://blog.csdn.net/whuslei/article/details/6667471
7 说一下你知道的排序算法,并就一种,写代码
略
8 二维数组:
/*
1 0 0 0
2 5 0 0
7 9 6 0
10 11 3 2
相邻相加求最大值,1可以跟2或者5,5可以跟9或者6,6可以跟3或者2,加到最下方,求最大值
1
2 5
7 9 6
10 11 3 2
输出为:
1
3 6
10 15 12
20 26 18 14
最大值max为b[3][1]=26 i值为=3 最后的j值为=1
*
*/
public class MaxSum {
public static void main(String[] args) {
int[][] a = {{ 1,0,0,0 }, { 2, 5,0,0 }, { 7, 9, 6,0 }, { 10, 11, 3, 2 } };
int[][] b=new int[4][4];//存储最大的结果
int max=0;
int lastI=0,lastJ=0;
int i = 0, j = 0;
for (i = 0; i < a.length; i++){
for (j = 0; j <=i; j++) {
int temp1=0,temp2=0;//临时值
if(i-1>=0){ //并非第一行
if(j-1>=0){ //左面的值
temp1=b[i-1][j-1];
}
if(i-1>=j){ //右面的值
temp2=b[i-1][j];
}
if(temp1>temp2){
b[i][j]=temp1+a[i][j];
}else{
b[i][j]=temp2+a[i][j];
}
}else{//第一行
b[i][j]=a[i][j];//第一行
}
if(i+1==a.length){//最后一行
if(b[i][j]>max){
max=b[i][j];
lastI=i;
lastJ=j;
}
}
//System.out.print(a[i][j]+" ");
}
//System.out.println();
}
for (i = 0; i < a.length; i++){
for (j = 0; j <=i; j++) {
System.out.print(b[i][j]+" ");
}
System.out.println();
}
System.out.println("最大值max为b["+lastI+"]["+lastJ+"]="+b[lastI][lastJ]+" i值为="+lastI+" 最后的j值为="+lastJ);
}
}
- 我的美团面试
- 美团的面试总结
- 美团和京东的社招面试总结(我的第一篇博客)
- 美团面试中被问到的问题汇总
- 美团外卖电话面试的知识点
- 面试---美团
- 美团面试总结
- 美团面试经历
- 美团面试
- 美团面试总结
- 美团面试总结
- 美团面试经历
- 美团面试
- 美团面试总结
- 美团电话面试
- 美团面试
- 美团面试
- 美团面试总结
- android面试题汇总
- Ajax动态访问数据库设计html多级select下拉菜单的方法
- 分治归并排序2
- 随机生成的S不包含任何一个串的概率 AC自动机+概率DP UVA 11468 Substring
- git subtree 的使用方法
- 我的美团面试
- Web Service那些事 2/4 - 使用 CXF 开发 SOAP 服务
- webview API详解
- 健康问答API接口-健康疑问开放接口
- Kubernetes概念介绍和v1版本部署过程
- English summary in September
- SQL语句优化(一)
- 关于端口扫描的总结
- MyEclipse SVN 插件