面试总结

html5语义化化标签有哪些?

<header></header>
<nav></nav>
<sectione></section>
<aside></aside>
<article></article>
<footer></footer>

基本数据类型,引用数据类型?

基本数据类型: Number、String、null、undefined、Boolean、symbol
引用数据类型:Object、Function、Array

怎样理解模块化?

前端优化和加载速度的方法?

## HTML 加载优化策略
1.样式在顶部,脚本在底部
2.尽量减少 HTTP 请求:合并文件是通过把所有的脚本放到一个文件中来减少 HTTP请求的方法。
3.减少 DNS 查找:缓存 DNS查找可以改善页面性能。
4.避免跳转 重定向:跳转会降低用户体验
5.预加载和后加载:不重要的信息可以稍后加载,预加载是在浏览器空闲的时候请求可能会用的内容(比如:图像,样式表和脚本)。当用户访问下一个页面时,页面的大部分内容已加载好了
6.用域名划分页面的内容:将内容划分为若干部分可以最大限度的实现平行下载;
7.减少frame的使用iframe元素可以在父文档中插入一个新的HTML文档
8.避免404的错误
9.优化图片
10.使用Ajax异步加载页面

css有哪些选择器?

 id选择器
 class选择器
 标签选择器
 伪类选择器
 * 通配符
 div p  选择 <div> 元素内部的所有 <p> 元素。
 div>p  选择父元素为 <div> 元素的所有 <p> 元素。
 div+p  选择紧接在 <div> 元素之后的所有 <p> 元素。

SVG与canvas 应用场景?

如果实现一个高亮搜索文件树,从DOM中找出子孙节点?

 var el,arr=[]
            function getChild(el){
                if(!el.children.length){
                   return arr.push(el)
                };
                if(el.children.length){
                    [...el.children].forEach(function(item){
                        arr.push(item);
                        getChildren(item);
                    });
                }
            }

promise、generator、generator、async/await的原理及解释?

JavaScript中如何使用函数式编程? JavaScript中如何使用函数式编程?

为什么利用多个域名提供网站资源会更有效?

http协议?(https://juejin.im/entry/57ff5c5b0bd1d00058e5b2aa)

http协议是从服务器传输超文本到本地浏览器的协议。
特点:简单快速,灵活,无连接,无状态
-------------------------------------------------------------------------
HTTP之URL
HTTP使用统一资源标识符(Uniform Resource Identifiers, URI)来传输数据和建立连接。URL是一种特殊类型的URI,包含了用于查找某个资源的足够的信息

URL,全称是UniformResourceLocator, 中文叫统一资源定位符,是互联网上用来标识某一处资源的地址。以下面这个URL为例,介绍下普通URL的各部分组成:

www.aspxfans.com:8080/news/index.…
从上面的URL可以看出,一个完整的URL包括以下几部分:
1.协议部分:该URL的协议部分为“http:”,这代表网页使用的是HTTP协议。在Internet中可以使用多种协议,如HTTP,FTP等等本例中使用的是HTTP协议。在"HTTP"后面的“//”为分隔符

2.域名部分:该URL的域名部分为“www.aspxfans.com”。一个URL中,也可以使用IP地址作为域名使用

3.端口部分:跟在域名后面的是端口,域名和端口之间使用“:”作为分隔符。端口不是一个URL必须的部分,如果省略端口部分,将采用默认端口

4.虚拟目录部分:从域名后的第一个“/”开始到最后一个“/”为止,是虚拟目录部分。虚拟目录也不是一个URL必须的部分。本例中的虚拟目录是“/news/”

5.文件名部分:从域名后的最后一个“/”开始到“?”为止,是文件名部分,如果没有“?”,则是从域名后的最后一个“/”开始到“#”为止,是文件部分,如果没有“?”和“#”,那么从域名后的最后一个“/”开始到结束,都是文件名部分。本例中的文件名是“index.asp”。文件名部分也不是一个URL必须的部分,如果省略该部分,则使用默认的文件名

6.锚部分:从“#”开始到最后,都是锚部分。本例中的锚部分是“name”。锚部分也不是一个URL必须的部分

7.参数部分:从“?”开始到“#”为止之间的部分为参数部分,又称搜索部分、查询部分。本例中的参数部分为“boardID=5&ID=24618&page=1”。参数可以允许有多个参数,参数与参数之间用“&”作为分隔符。

HTTP之请求消息Request
Get请求例子:
第一部分:请求行   用来说明请求类型,要访问的资源以及所使用的HTTP版本.
第二部分:请求头部   紧接着请求行(即第一行)之后的部分,用来说明服务器要使用的附加信息
第三部分:空行,请求头部后面的空行是必须的
第四部分:请求数据也叫主体,可以添加任意的其他数据。

1xx:指示信息--表示请求已接收,继续处理
2xx:成功--表示请求已被成功接收、理解、接受
3xx:重定向--要完成请求必须进行更进一步的操作
4xx:客户端错误--请求有语法错误或请求无法实现
5xx:服务器端错误--服务器未能实现合法的请求

200 OK                        //客户端请求成功
400 Bad Request               //客户端请求有语法错误,不能被服务器所理解
401 Unauthorized              //请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用 
403 Forbidden                 //服务器收到请求,但是拒绝提供服务
404 Not Found                 //请求资源不存在,eg:输入了错误的URL
500 Internal Server Error     //服务器发生不可预期的错误
503 Server Unavailable        //服务器当前不能处理客户端的请求,一段时间后可能恢复正常

GET     请求指定的页面信息,并返回实体主体。
HEAD     类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头
POST     向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。
PUT     从客户端向服务器传送的数据取代指定的文档的内容。
DELETE      请求服务器删除指定的页面。
CONNECT     HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。
OPTIONS     允许客户端查看服务器的性能。
TRACE     回显服务器收到的请求,主要用于测试或诊断。

例如:在浏览器地址栏键入URL,按下回车之后会经历以下流程:

1、浏览器向 DNS 服务器请求解析该 URL 中的域名所对应的 IP 地址;

2、解析出 IP 地址后,根据该 IP 地址和默认端口 80,和服务器建立 TCP 连接;

3、浏览器发出读取文件(URL 中域名后面部分对应的文件)的HTTP 请求,该请求报文作为 TCP 三次握手的第三个报文的数据发送给服务器;

4、服务器对浏览器请求作出响应,并把对应的 html 文本发送给浏览器;

5、释放 TCP 连接;

6、浏览器将该 html 文本并显示内容; 

同源政策?

ajax的原理以及跨域问题?

Jq的onload事件?

闭包的好处与坏处?

闭包通常是指有权访问另外一个函数作用域中的变量的函数,闭包通常情况下会在函数嵌套函数的时候形成。
通常,函数的作用域及其所有变量都会在函数结束的时候被销毁,但是在创建一个闭包以后,这个函数的作用域就会一直保存到闭包不存在为止。(这就是缺点,因为它一直占用内存,影响网站性能)。
闭包可以创建命名空间,  以减少全局变量的使用,从而使用闭包模块化代码,减少全局变量的污染。(这就是它的优点)

怎样使一个div隐藏?

用透明度:opacity:0;
设置显示隐藏:display:none;
设置缩放:scale(0)
设置位移:transform:translate(-10000px,0)
设置可见:visibility:hidden;

怎样使一个div 垂直居中?

top right bottom left 都设置成0  margin:auto;
css3方法
left50%; top:50; margin-top:-; margin-left:-;

get和post 的区别?

GET请求
GET /books/?sex=man&name=Professional HTTP/1.1
Host: www.wrox.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6)
Gecko/20050225 Firefox/1.0.1
Connection: Keep-Alive

注意最后一行是空行

POST请求
POST / HTTP/1.1
Host: www.wrox.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6)
Gecko/20050225 Firefox/1.0.1
Content-Type: application/x-www-form-urlencoded
Content-Length: 40
Connection: Keep-Alive

name=Professional%20Ajax&publisher=Wiley

GET提交的数据会放在URL之后,以?分割URL和传输数据,参数之间以&相连,如EditPosts.aspx?name=test1&id=123456. POST方法是把提交的数据放在HTTP包的Body中.

GET提交的数据大小有限制(因为浏览器对URL的长度有限制),而POST方法提交的数据没有限制.

GET方式需要使用Request.QueryString来取得变量的值,而POST方式通过Request.Form来获取变量的值。

GET方式提交数据,会带来安全问题,比如一个登录页面,通过GET方式提交数据时,用户名和密码将出现在URL上,如果页面可以被缓存或者其他人可以访问这台机器,就可以从历史记录获得该用户的账号和密码.

阻止默认事件? preventDefault

请求数据的过程中如何解决跨域问题?

怎样做浏览器缓存?

forEach如何终止? return false

常用的ES6语法有哪些? includes

箭头函数有哪些特点,this指向?

箭头函数没有自己的this, 它的this是继承而来; 默认指向在定义它时所处的对象(宿主对象),而不是执行时的对象, 定义它的时候,可能环境是window; 箭头函数可以方便地让我们在 setTimeout ,setInterval中方便的使用this

解释一下原型和原型链?

原生ajax的过程?

     var request = new XMLHttpRequest();
     request. open( "GET", "url" );
     request. send();
     request. onreadystatechange = function() {
         if ( request.readyState=== 4) {
             if ( request.status=== 200) {
                 document. getElementById( "searchResult").innerHTML = request.responseText;
            } else {
                 alert( "发生错误:" + request.status);
            }
        }
    }

常见的状态码?

```
    100 Continue
      初始的请求已经接受,客户应当继续发送请求的其余部分
    101 Switching Protocols
      服务器将遵从客户的请求转换到另外一种协议
    200 OK
      一切正常,对GET和POST请求的应答文档跟在后面
    201 Created
      服务器已经创建了文档,Location头给出了它的URL。
    202 Accepted
      已经接受请求,但处理尚未完成。
    203 Non-Authoritative Information
      文档已经正常地返回,但一些应答头可能不正确,因为使用的是文档的拷贝
    204 No Content
      没有新文档,浏览器应该继续显示原来的文档。如果用户定期地刷新页面,而Servlet可以确定用户文档足够新,这个状态代码是很有用的
    205 Reset Content
      没有新的内容,但浏览器应该重置它所显示的内容。用来强制浏览器清除表单输入内容
    206 Partial Content
      客户发送了一个带有Range头的GET请求,服务器完成了它
    300 Multiple Choices
      客户请求的文档可以在多个位置找到,这些位置已经在返回的文档内列出。如果服务器要提出优先选择,则应该在Location应答头指明。
    301 Moved Permanently
      客户请求的文档在其他地方,新的URL在Location头中给出,浏览器应该自动地访问新的URL。
    302 Found
      类似于301,但新的URL应该被视为临时性的替代,而不是永久性的。
    303 See Other
      类似于301/302,不同之处在于,如果原来的请求是POST,Location头指定的重定向目标文档应该通过GET提取
    304 Not Modified
      客户端有缓冲的文档并发出了一个条件性的请求(一般是提供If-Modified-Since头表示客户只想比指定日期更新的文档)。服务器告诉客户,原来缓冲的文档还可以继续使用。
    305 Use Proxy
      客户请求的文档应该通过Location头所指明的代理服务器提取
    307 Temporary Redirect
      和302(Found)相同。许多浏览器会错误地响应302应答进行重定向,即使原来的请求是 POST,即使它实际上只能在POST请求的应答是303时才能重定向。由于这个原因,HTTP 1.1新增了307,以便更加清除地区分几个状态代码: 当出现303应答时,浏览器可以跟随重定向的GET和POST请求;如果是307应答,则浏览器只能跟随对GET请求的重定向。
    400 Bad Request
      请求出现语法错误。
    401 Unauthorized
      客户试图未经授权访问受密码保护的页面。应答中会包含一个WWW-Authenticate头,浏览器据此显示用户名字/密码对话框,然后在填写合适的Authorization头后再次发出请求。
    403 Forbidden
      资源不可用。
    404 Not Found
      无法找到指定位置的资源
    405 Method Not Allowed
      请求方法(GET、POST、HEAD、Delete、PUT、TRACE等)对指定的资源不适用。
    406 Not Acceptable
      指定的资源已经找到,但它的MIME类型和客户在Accpet头中所指定的不兼容
    407 Proxy Authentication Required
      类似于401,表示客户必须先经过代理服务器的授权。
    408 Request Timeout
      在服务器许可的等待时间内,客户一直没有发出任何请求。客户可以在以后重复同一请求。
    409 Conflict
      通常和PUT请求有关。由于请求和资源的当前状态相冲突,因此请求不能成功。
    410 Gone
      所请求的文档已经不再可用,而且服务器不知道应该重定向到哪一个地址。它和404的不同在于,返回407表示文档永久地离开了指定的位置,而404表示由于未知的原因文档不可用。
    411 Length Required
      服务器不能处理请求,除非客户发送一个Content-Length头。
    412 Precondition Failed
      请求头中指定的一些前提条件失败
    413 Request Entity Too Large
      目标文档的大小超过服务器当前愿意处理的大小。如果服务器认为自己能够稍后再处理该请求,则应该提供一个Retry-After头
    414 Request URI Too Long
      URI太长
    416 Requested Range Not Satisfiable
      服务器不能满足客户在请求中指定的Range头
    500 Internal Server Error
      服务器遇到了意料不到的情况,不能完成客户的请求
    501 Not Implemented
      服务器不支持实现请求所需要的功能。例如,客户发出了一个服务器不支持的PUT请求
    502 Bad Gateway
      服务器作为网关或者代理时,为了完成请求访问下一个服务器,但该服务器返回了非法的应答
    503 Service Unavailable
      服务器由于维护或者负载过重未能应答。例如,Servlet可能在数据库连接池已满的情况下返回503。服务器返回503时可以提供一个Retry-After头
    504 Gateway Timeout
      由作为代理或网关的服务器使用,表示不能及时地从远程服务器获得应答
    505 HTTP Version Not Supported
      服务器不支持请求中所指明的HTTP版本
```

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值