初入社会面试题总结——前端基础

前端面试题总结

Jquery

1.$是什么,$()是什么,$.是什么

$是指juery对象,$.据面向对象原则可以获得其属性和行为。例如$.get(),$.ajax()都是获取此jquery对象内部的方法。$()则是Juery()方法,其作用是用于将任何对象包裹成juery对象,它会根据传递参数处理结果,返回一个包含所有匹配的 DOM 元素数组的 jQuery 对象。

2.简述Jquery中的选择器

  1. 基本选择器:id选择器,标签选择器,类选择器
  2. 层次选择器
选择器描述例子
$(“ancestor descendant”)选取ancenstor元素中所有descendant(后代)元素,不仅仅是直接子元素$(“div span”)选取<div>里的所有<span>元素
$(“parent>child”)选取parent元素下的child(子)元素,直接子元素,例如:不包括子元素中的子元素$(“div>span”)选取<div>元素下名为<span>的元素
$(“prev+next”)选取紧接在prev元素后的next元素$(".one+div")选取class为one的下一个<div>元素
$(“prev~siblings”)选取prev元素之后所有siblings元素$("#two~div")选取id为two的元素后面的所有<div>

层次选择器返回结果均为集合元素
3. 过滤选择器:如:$(“tr:first”)选择所有tr元素的第一个 $(“tr:last”)选择所有tr元素的最后一个
4. 表单选择器:如:$(":input")选择所有的表单输入元素 $(":text")选择所有的text的input元素

3.Jquery对象和dom对象怎么互相转换

这里一般有两种方法可以实现
1.Jquery其实就是一个Dom对象集合,我们可以通过Jquery获取下标的方式获取dom对象
2.通过Jquery方法$(")将dom对象放入直接转换成Jquery对象

4.Jquery中.get()提交方式和.post()提交方式的区别

1.post传输数据量相较于get要更大一些
2.使用get方式提交的数据会被浏览器缓存
3.get请求时传递数据是通过url后缀参数的方式提交,用户可见。Post请求的参数是在HTTP消息的主体中发送的,对于用户来说都是不可见的,相对于Get更为安全可靠。

5.简述常用的Jquery动画

影藏:hide()
显示:show()
淡入淡出:fadeIn()==淡入(显示) fadeOut()==淡出(消失)
滑动:slideUp()==向上滑动  slideDown()==向下滑动

6.Jquery有哪些节点插入的方法,具体介绍

在元素内部添加
append:向每个匹配的元素内部追加内容 
        <p>我想说:</p>
        $("p").append("<b>你好</b>") 
        <p>我想说:<b>你好</b></p>

appendTo:将所有匹配的元素追加到指定的元素中 
        <p>我想说:</p> 
        $("<b>你好</b>").appendTo("p") 
        <p>我想说:<b>你好</b></p>

prepend:向每个匹配的元素内部前置添加内容 
        <p>我想说:</p> 
        $("p").prepend("<b>你好</b>") 
        <p><b>你好</b>我想说:</p>

prependTo:将所有匹配的元素前置到指定的元素中 
        <p>我想说:</p> 
        $("<b>你好</b>").prependTo("p") 
        <p><b>你好</b>我想说:</p>

在元素外部添加
after:在每个匹配元素之后插入内容 
        <p>我想说:</p> 
        $("p").after("<b>你好</b>") 
        <p>我想说:</p><b>你好</b>

insertAfter:将所有配的元素插入到指定元素的后面 
        <p>我想说:</p> 
        $("<b>你好</b>").insertAfter("p") 
        <p>我想说:</p><b>你好</b>

before:在每个匹配的元素之前插入内容 
        <p>我想说:</p> 
        $("p").before("<b>你好</b>") 
        <b>你好</b><p>我想说:</p>

insertBefore:将所有匹配的元素插入到指定的元素的前面 
        <p>我想说:</p> 
        $("<b>你好</b>").insertBefore("p") 
        <b>你好</b><p>我想说:</p> 

7.$(document).ready() 是个什么函数?为什么要用它

ready()函数用于文档进入ready状态时执行相关代码,当HTML被完全解析Dom树完全构建完成后执行,其好处是适用于所有浏览器。解决了跨浏览器难题

8. JavaScript window.onload 事件和 jQuery ready 函数有何不同

JavaScript window.onload 事件和 jQuery ready 函数之间的主要区别是,前者除了要等待 DOM 被创建还要等到包括大型图片、音频、视频在内的所有外部资源都完全加载。如果加载图片和媒体内容花费了大量时间,用户就会感受到定义在 window.onload 事件上的代码在执行时有明显的延迟。

另一方面,jQuery ready() 函数只需对 DOM 树的等待,而无需对图像或外部资源加载的等待,从而执行起来更快。使用 jQuery $(document).ready() 的另一个优势是你可以在网页里多次使用它,浏览器会按它们在 HTML 页面里出现的顺序执行它们,相反对于 onload 技术而言,只能在单一函数里使用。鉴于这个好处,用 jQuery ready() 函数比用 JavaScript window.onload 事件要更好些。

ajax

1.什么事ajax,其作用是什么

AJAX是“Asynchronous JavaScript and XML”的缩写。他是指一种创建交互式网页应用的网页开发技术。客户端可以在不必刷新整个浏览器的情况下,与服务器进行异步通讯的技术。实现局部刷新的功能。

2.简述ajax应用和传统web应用的区别

传统web与服务器的交互基本形式为,浏览器像服务器的servlet发出访问请求,servlet处理数据后再将其发送给浏览器。当使用ajax时,浏览器是先把请求发送到XMLHttpRequest异步对象之中,异步对象对请求进行封装,然后再与发送给服务器。服务器并不是以转发的方式响应,而是以流的方式把数据返回给浏览器。XMLHttpRequest异步对象会不停监听服务器状态的变化,得到服务器返回的数据,就写到浏览器上因为不是转发的方式,所以是无刷新就能够获取服务器端的数据。

在这里插入图片描述
3.介绍一下XMLHttpRequest

XMLHttpRequest是一个浏览器接口,使得Javascript可以进行HTTP(S)通信,这就是我们熟悉的AJAX。
XMLHttpRequest可以向不同域名的服务器发出HTTP请求,叫做CORS

4.介绍一下XMLHttpRequest常用方法和属性

常用方法:

1.open():该方法创建http请求
2.setRequestHeader(String header,String value):设置消息头(使用post方式才会使用到,get方法并不需要调用该方法)
3.send(content):发送请求给服务器

常用属性:

1.onreadystatechange:请求状态改变的事件触发器(readyState变化时会调用此方法),一般用于指定回调函数
2.readyState:请求状态readyState一改变,回调函数被调用,它有5个状态
  0:未初始化
  1:open方法调用完成之后
  2:服务器应答客户端请求
  3:交互中,Http头信息已经接受,但相应数据没有接收
  4:数据接收完成
3.responseText:服务器返回的文本内容
4.responseXML:服务器返回的兼容DOM的XML内容
5.status:服务器返回的状态码
6.statusText:服务器返回状态码的文本信息

5.ajax一共多少种回调

onSuccess
onFailure
onUnintialized
onLoading
onLoaded
onInteractive
onComplete
onException

6.ajax实现流程

1.创建异步调用对象(XMLHTTPRequest)
2.创建一个新的HTTP请求,并初始化该请求对象的请求方法,Url以及验证信息等数据
3.设置相应HTTP请求的函数
4.发送HTTP请求
5.获取异步调用返回数据
6.使用JS和Dom实现异步刷新

综合web

1.get和post区别

1.get请求的数据是通过url参数后缀的方式提交,这样对于用户而言是可见的,而且因为现在很多浏览器会将你请求的url暂时存在某个日志文件中,这样通过你的请求就可以知道你提交的数据结果,极其不安全。而post提交则是由HTTP消息主体发送数据,对于用户而言是不可见的。
2.get请求数据传参有长度限制,该限制是由服务器限制了url长度导致的。Post请求不会被缓存,Post请求没有被限制长度。

Post请求过程:
(1)浏览器请求tcp连接(第一次握手)
(2)服务器答应进行tcp连接(第二次握手)
(3)浏览器确认,并发送post请求头(第三次握手,这个报文比较小,所以http会在此时进行第一次数据发送)
(4)服务器返回100 Continue响应
(5)浏览器发送数据
(6)服务器返回200 OK响应
Get请求的过程:
(1)浏览器请求tcp连接(第一次握手)
(2)服务器答应进行tcp连接(第二次握手)
(3)浏览器确认,并发送get请求头和数据(第三次握手,这个报文比较小,所以http会在此时进行第一次数据发送)
(4)服务器返回200 OK响应

2.说一说Servlet的生命周期

web容器加载servlet,生命周期开始。调用servlet内部的init()完成servlet的初始化。调用service()响应客户请求,在此期间根据不同的请求调用不同的请求方式(doGet(),doPost())。调用destroy销毁结束服务。

3.jsp有哪些内置对象

request:该对象包含了客户端的相关请求信息,主要用于接收通过HTTP协议传送到服务器的数据。其作用域为一次请求有效
response:代表客户端的响应,主要将被由jsp容器处理过的对象传回用户端,其作用域在当前jsp有效。
session:服务器针对每个用户生成的,用于保存用户信息,跟踪用户状态的session容器对象,内部采用Map类保存数据。
application:该对象可将信息保存在服务器中,生命周期与服务器相关联,如果服务器一直存在,则该对象保存的信息在整个应用有效。
out:用于在浏览器输出信息,管理服务器的输出缓冲区。
pageContext:通过该对象可获取任何范围的参数,其初始化和创建都由容器完成,则使得在jsp页面中可以直接使用
config:取得服务器的配置信息。
page:代表jsp本身。
exception:异常信息。

4.Jsp和servlet的关系,简述其不同处和相同处

jsp是servlet的拓展,是一个视图化的servlet更叫强调展示的表达,而servlet更加侧重于逻辑完成

5.转发和转向的区别

forward 是控制权的转向,是服务器请求资源,服务器直接请求目标地址的 URL,把那个 URL 的响应内容读取过来,然后把这些内容再发给浏览器。浏览器不知道服务器发送的内容是哪儿来的,所以它的地址还是原来的地址。redirect 就是服务器端根据逻辑,发送一个状态码,告诉浏览器去请求一个新的地址,浏览器地址栏上显示的是新的请求地址。forward 更高效。有些情况下,如果需要使用其它服务器上的资源,则必须使用 redirect。

6.动态include和静态include的区别

动态include用jsp:include动作实现:<jsp:include page="" flush=“true”>,它随时监听所包含的文件的状态,使用与包含动态界面,可带参数。(在请求处理阶段执行)
静态由include伪代码实现:<%@include file="*.jsp"%>,适用静态界面。(在翻译阶段执行)

7.简单介绍四种作用域

一、application(Servletcontext)
生命周期:当Web应用被加载进容器时创建代表整个web应用的application对象,当服务器关闭或Web应用被移除时,application对象跟着销毁。所以其作用范围为整个web应用,由所有用户共用此一个空间。例如一个清单列表,需要从数据库读取数据,如果使用session保存列表信息,因为session是每个用户独有,所以每次都会访问一次数据库,这样效率太低,这种时候最好的处理方式是,当服务器启动时直接访问数据库,将该列表存入application中,该作用域覆盖每个用户,用户需要时直接访问servlet上下文取数据即可。
二、session(HttpSession)
生命周期:在第一次调用 request.getSession() 方法时,服务器会检查是否已经有对应的session,如果没有就在内存 中创建一个session并返回。当一段时间内session没有被使用(默认为30分钟),则服务器会销毁该session。如果服务器非正常关闭(强行关闭),没有到期的session也会跟着销毁。如果调用session提供的invalidate() ,可以立即销毁session。
  注意:服务器正常关闭,再启动,Session对象会进行钝化和活化操作。同时如果服务器钝化的时间在session 默认销毁时间之内,则活化后session还是存在的。否则Session不存在。 如果JavaBean 数据在session钝化时,没有实现Serializable 则当Session活化时,会消失。作用范围为当前会话。
三、request(HttpServletRequest)
生命周期:在service 方法调用前由服务器创建,传入service方法。整个请求结束,request生命结束。生命周期为:整个请求链。
四、pageContext
生命周期:当对JSP的请求时开始,当响应结束时销毁。作用范围:整个JSP页面,是四大作用域中最小的一个。可获得其他八大隐对象,可视为入口对象。

8.详解session,cookie,极其区别

先来了解几个概念。

  1、无状态的HTTP协议:
    协议是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则,超文本传输协议(HTTP)是一种通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器。HTTP协议是无状态的协议。一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接。这就意味着服务器无法从连接上跟踪会话。
  2、会话(Session)跟踪:
  会话,指用户登录网站后的一系列动作,比如浏览商品添加到购物车并购买。会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术是Cookie与Session。Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。

Cookie
Cookie实际上是一小段的文本信息。客户端请求服务器,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie。客户端会把Cookie保存起来。 当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器。服务器检查该Cookie,以此来辨认用户状态。服务器还可以根据需要修改Cookie的内容。
Session
Session是另一种记录客户状态的机制,不同的是Cookie保存在客户端浏览器中,而Session保存在服务器上。客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录 在服务器上。这就是Session。客户端浏览器再次访问时只需要从该Session中查找该客户的状态就可以了。每个用户访问服务器都会建立一个session,那服务器是怎么标识用户的唯一身份呢?事实上,用户与服务器建立连接的同时,服务器会自动为其分配一个SessionId。
总结

(1)Cookie以文本文件格式存储在浏览器中,而session存储在服务端它存储了限制数据量。它只允许4kb它没有在cookie中保存多个变量。
(2)cookie的存储限制了数据量,只允许4KB,而session是无限量的
(3)我们可以轻松访问cookie值但是我们无法轻松访问会话值,因此它更安全
(4)既然session是key-value格式的数据,则它的键session_id保存在cookie中的,值session_data保存在服务器,通过key来取到value;

9.什么是ORM

对象关系映射(Object-Relational Mapping)是一种为了解决面向对象与面向关系数据库存在的互不匹配的技术,简单说,ORM 是通过使用描述对象和数据库之间映射的元数据,将 Java 程序中的对象自动持久化到关系数据库中,本质上就是将数据从一种形式转换到另一种形式。

10.会话跟踪技术

Cookie、URL 重写、设置表单隐藏域

11.简述中间件

RMI(Remote Method Invocation)远程调用

Load Balancing 负载均衡,将访问符合分散到各个服务器中

Treasparent Fail-over 透明的故障切换

Clustering 集群,用多个小的服务器代替大型机

Back-end-Integration 后端集成,用现有的、新开发的系统如何去集成遗留的系统

Transaction 事务(全局事务:分布式事务)(局部事务:在同一数据库连接内的事务)

Dynamic Redeployment 动态重新部署,在不停止原系统的情况下,部署新的系统

System Managerment 系统管理

Threading 多线程处理

Message-oriented Middleware 面向消息的中间件(异步的调用编程)

Component Life Cycle 组件的生命周期管理

Resource pooling 资源池

Security 安全

Caching 缓存

12.Connection 类中有哪几个事务处理方法

setAutoCommit(boolean autoCommint):设置是否自动提交事务,默认为自动提交
commint():提交事务
rollback():回滚事务

13.简述Statement 和 PreparedStatement 的区别

创建时的区别:

 Statement stm = con.createStatement();
 PreparedStatement pstm = con.prepareStatement(sql);

执行的时候:

 stm.execute(sql);
 pstm.execute();
  1. PreparedStatement 一旦绑定了 SQL,此 pstm 就不能执行其它的 SQL,即只能执行一条 SQL 命令;Statement 可以执行多条 SQL 命令。
  2. 对于执行同构的 SQL(只有参数值不同,其它SQL 结构都相同),用 PreparedStatement 的执行效率比较高,支持预编译,可以执行批量处理任务;对于异构的SQL 语句,Statement 的执行效率较高。
  3. 代码的可读性和可维护性;(例如一个insert 的 SQL 语句,stm 在 SQL 中需要用字符形式写入传递的参数,pstm 提供方法传递参数,并且过滤掉SQL 中的特俗字符“ ’”,“-”)。
  4. PreparedStatement 提高了安全性,防止了SQL 注入,但 Statement 不能实现,只能做判断和过滤。

14.如何将GB2312编码转换成ISO-8859-1编码的字符串

关键代码:

String s1=”是是是”;
String s2=new String(s1.getBytes(“GB2312”),”ISO-8859-1”);

15.jstl是什么,有哪些优点

JSTL(jsp标准标签库)是一个不断完善的开放源代码的JSP标签库,由四个定制标记库(core、format、xml和sql)和一对通用标记库验证器(ScriptFreeTLV和PermittedTaglibsTLV)组成。
优点有:
(1)在应用程序服务器之间提供了一致的接口,最大程度的提高了web应用在各应用服务之间的移植。
(2)简化了JSP和WEB应用程序的开发。
(3)以一种统一的方式减少了JSP中的scriptlet代码数量,可以达到没有任何scriptlet代码的程序。
(4)允许JSP设计工具与WEB应用程序开发的进一步集成。相信不久就会有支持JSTL的IDE开发工具出现。

16.jdbc连接数据库步骤

1.注册驱动
2.创建连接
3.创建statement
4.执行sql语句
5.处理结果集
6.关闭资源

17.简述jsp的六个基本动作

jsp:include:在网页被请求的时候引入一个文件;
jsp:useBean:寻找或者实例化一个JavaBean;
jsp:setProperty:设置JavaBean的属性;
jsp:getProperty:输出JavaBean的属性;
jsp:forward:把请求转到新的页面;
jsp:plugin:根据浏览器类型为Java插件生成OBJECT或EMBED标记。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值