面试。。。***

1.怎样添加、移除、复制、创建、查找节点

2.在JavaScript中什么是伪数组?如何将伪数组转化为标准数组

3.jQuery的事件委托on、live、delegate之间有什么区别

4描述一次完整的http请求过程(输入url敲回车发生了什么)

5.http状态码有哪些

6.自我介绍

7.项目介绍

8.后台管理系统权限你是如何实现的?

9.为什么要离职?

10.你要求15k,我们公司给不了你那么多,你该怎么答?


1.怎样添加、移除、复制、创建、查找节点

        (1)DOM-创建新节点

                createDocumentFragment()    //创建一个DOM片段

                createElement()   //创建一个具体的元素

                createTextNode()   //创建一个文本节点

        (2)DOM-添加,替换,移除,插入

                appendChild()

                removeChild()

                replaceChild()

                insertBefore() //在已有的子节点前插入一个新的子节点

        (3)DOM-查找

                getElementsByTagName()    //通过标签名称

                getElementsByName()         //通过元素的name属性的值

                getElementById()    //通过元素Id进行查找

2.在JavaScript中什么是伪数组?如何将伪数组转化为标准数组?

        js中无法直接调用数组方法和length属性的数组,仍可以通过数组遍历的方法来遍历的数组叫做伪数组(arguments||document.getElements..获取到的内容)

        (1)通过遍历将伪数组的元素放到一个新的数组中

        (2)通过call改变数组slice方法里的this指向

3.jQuery的事件委托on、live、delegate之间有什么区别?

    (1).on      使用.on()方法,事件只会绑定到$()函数的选择符表达式匹配的元素上    

                    .on( events [, selector ] [, data ], handler(eventObject) )

    (2).live    .live()方法会把click事件绑定到$(document)对象,而且只需要给$(document)绑定一次,然后就能够处理后续动态加载的单元格的单击事件

                    $("#info_table td").live("click",function(){/*显示更多信息*/})

                        .live的缺点:   1. $()函数会找到当前页面中的所有td元素并创建jQuery对象,但在确认事件目标时却不用这个td元素集合,而是使用选择符表达式与event.target或其祖先元素进行比较,因而生成这个jQuery对象会造成不必要的开销;

                                            2.默认把事件绑定到$(document)元素,如果DOM嵌套结构很深,事件冒泡通过大量祖先元素会导致性能损失;

                                            3.只能放在直接选择的元素后面,不能在连缀的DOM遍历方法后面使用,即$("#infotable td").live...可以,但$("#infotable").find("td").live...不行;

                                            4.收集td元素并创建jQuery对象,但实际操作的却是$(document)对象

(3).delegate    使用.delegate()有如下优点:

           1. 直接将目标元素选择符("td")、事件("click")及处理程序与“受拖方”$("#info_table")绑定(语义明确)

           2.支持在连缀的DOM遍历方法后面调用

                        $("#info_table").delegate("td","click",function(){/*显示更多信息*/})

4.描述一次完整的http请求过程(输入url敲回车发生了什么)

        一次完整的HTTP请求所经历的7个步骤

        HTTP通信机制是在一次完整的HTTP通信过程中,Web浏览器与Web服务器之间将完成下列7个步骤:

        1. 建立TCP连接:

                在HTTP工作开始之前,Web浏览器首先要通过网络与Web服务器建立连接,该连接是通过TCP来完成的,该协议与IP协议共同构建Internet,即著名的TCP/IP协议族,因此Internet又被称作是TCP/IP网络。HTTP是比TCP更高层次的应用层协议,根据规则,只有低层协议建立之后才能进行更高层协议的连接,因此,首先要建立TCP连接,一般TCP连接的端口号是80。

        2. Web浏览器向Web服务器发送请求命令: 

                 一旦建立了TCP连接,Web浏览器就会向Web服务器发送请求命令。例如:GET/sample/hello.jsp HTTP/1.1。

        3. Web浏览器发送请求头信息 :

                浏览器发送其请求命令之后,还要以头信息的形式向Web服务器发送一些别的信息,之后浏览器发送了一空白行来通知服务器,它已经结束了该头信息的发送。

        4. Web服务器应答 :

                客户机向服务器发出请求后,服务器会客户机回送应答, HTTP/1.1 200 OK ,应答的第一部分是协议的版本号和应答状态码。

       5. Web服务器发送应答头信息: 

                正如客户端会随同请求发送关于自身的信息一样,服务器也会随同应答向用户发送关于它自己的数据及被请求的文档。

       6. Web服务器向浏览器发送数据: 

                Web服务器向浏览器发送头信息后,它会发送一个空白行来表示头信息的发送到此为结束,接着,它就以Content-Type应答头信息所描述的格式发送用户所请求的实际数据。

      7. Web服务器关闭TCP连接 :

                一般情况下,一旦Web服务器向浏览器发送了请求数据,它就要关闭TCP连接,然后如果浏览器或者服务器在其头信息加入了这行代码:Connection:keep-alive;TCP连接在发送后将仍然保持打开状态,于是,浏览器可以继续通过相同的连接发送请求。保持连接节省了为每个请求建立新连接所需的时间,还节约了网络带宽。

5.http状态码有哪些 ?         

     1**(信息类):表示接收到请求并且继续处理

          100  Continue  继续,一般在发送post请求时,已发送了http header之后服务端将返回此信息,表示确认,之后发送具体参数信息

     2**(响应成功):表示动作被成功接收、理解和接受

          200  OK        正常返回信息

          201  Created    请求成功并且服务器创建了新的资源

          202  Accepted  服务器已接受请求,但尚未处理

     3**(重定向类):为了完成指定的动作,必须接受进一步处理

          301  Moved Permanently  请求的网页已永久移动到新位置。

          302  Found      临时性重定向。

          303  See Other  临时性重定向,且总是使用 GET 请求新的 URI。

          304  Not Modified 自从上次请求后,请求的网页未修改过。

    4**(客户端错误类):请求包含错误语法或不能正确执行

          400  Bad Request  服务器无法理解请求的格式,客户端不应当尝试再次使用相同的内容发起请求。

         401  Unauthorized 请求未授权。

         403  Forbidden  禁止访问。

          404  Not Found  找不到如何与 URI 相匹配的资源。

    5**(服务端错误类):服务器不能正确执行一个正确的请求

          500  Internal Server Error  最常见的服务器端错误。

         503  Service Unavailable 服务器端暂时无法处理请求(可能是过载或维护)。

6.自我介绍

7.项目介绍

8.后台管理系统权限你是如何实现的?

        1.定义静态路由表(无需权限的使用)

        2.定义权限路由表(和后台返回的权限进行匹配用)

            开始登陆判断登陆是否成功(成功将返回的登录token值存储到本地里,用导航守卫进行判断本地是否存在返回的token值)没有成功继续登录。成功时

9.为什么要离职?

10.你要求15k,我们公司给不了你那么多,你该怎么答?

你可能感兴趣的:(面试。。。***)