1、this指向的情况
1)以函数形式调用,this指向window 【test()】
2)以方法形式调用,谁调用方法this指向谁 【p.test() this指向p】
3)以构造函数调用,this指向新创建的对象 【new test()】
4)使用call和apply方法调用,this指向指定的对象 【test.call(obj) this指向obj】
2、给数组对象添加一个属性
① 使用Object.assign()
let data = [
{name:'dafu',age:18,sex:'male'},
{name:'jelatoni',age:12,sex:'male'},
{name:'linabell',age:6,sex:'female'}
]
let newData=[]
data.forEach(item=>{
newData.push(Object.assign({},item,{home:'disney'}))
})
newData:
②使用扩展字符
data=data.map(item=>{
return {...item,home:'disney'}
})
3、HTTP协议
超文本传输协议,客户端和服务端请求和应答的标准;
HTTP协议定义Web客户端如何从Web服务器请求Web页面,以及服务器如何把Web页面传送给客户端。HTTP采用了请求/响应模型;
HTTP请求/响应步骤:
1)客户端连接到Web服务器:一个HTTP客户端,通常为浏览器,与web服务器的HTTP端口(默认为80)建立TCP套接字连接;
2)发送HTTP请求:通过TCP套接字,客户端向Web服务器发送一个文本的请求报文,一个请求报文由请求行、请求头、空行和请求体组成;
3)服务器接受请求并返回HTTP响应:Web服务器解析请求,定位请求资源。服务器将资源复本写到TCP套接字,由客户端读取;一个响应由响应行、响应头、空行和响应体组成;
4)释放TCP连接:若connection模式为close,则服务器主动关闭TCP连接,客户端被动关闭连接,释放TCP连接;若connection模式为keepalive,则该连接会保持一段时间,在该段时间内可以继续接收请求;
5)客户端浏览器解析HTML内容:客户端浏览器首先解析响应行,查看表明请求是否成功的响应状态码;然后解析每一个响应头,响应头告知以下为若干字节的html文档和文档的字符集;客户端读取响应数据html,根据html的语法对其进行格式化,并在浏览器窗口中显示;