- 创建一个关联其他对象的噺对象
首先创建一个新的对象。
然后这个新对象会被绑定到函数调用的this。
最后如果函数本身没有返回其他对象,那么new表达式中的函數调用会自动返回这个新对象 - 首先,创建一个空对象并且this变量引用该对象,同时还继承了该对象的原型
然后,属性和方法被加入到this引用的对象中
最后,新创建的对象由this引用并且最后隐式的返回this。
关于这部分问题可以查阅《你不知道的js》。
闭包就是能够讀取其他函数内部变量的函数由于在JS语言中,只有函数内部的子函数才能读取内部变量因此可以把闭包简单理解成“定义在一个函数內部的函数”,通过另一个函数访问这个函数的局部变量,利用闭包可以突破作用链域,将函数内部的变量和方法传递到外部闭包可以读取函数内部的变量,让这些变量始终保持在内存中也可以封装对象的私有属性和私有方法。
2.内部函数可以引用外层的参数和变量
3.参数和变量不会被垃圾回收机制回收
cookie 存储在用户本地终端上的数据cookie数据不能超过4k,可设置失效事件在所有同源窗口中共享。cookie每次都会携带在http頭中如果使用cookie保存过多数据会带来性能问题。
sessionStorage 针对一个session的数据存储当用户关闭浏览器窗口后,数据会被删除;一般为5MB仅在客户端(即浏览器)中保存,不参与和服务器的通信;即使是同一个页面也不在不同浏览器中共享。
localStorage 没有时间限制的数据存储除非被清除;一般为5MB,仅在客户端(即浏览器)中保存不参与和服务器的通信;在所有同源窗口中共享。
一个页面从输入URL到页面加载显示完成这个过程中都发生了什么?
1、浏览器会开启一个线程来处理这个请求对 URL 分析判断如果是 http 协议就按照 Web 方式来处理;
2、调用浏览器内核中的对应方法,比如 WebView 中的 loadUrl 方法;
3、通过DNS解析获取网址的IP地址设置 UA 等信息发出第二个GET请求;
4、进行HTTP协议会话,客户端发送报头(请求报头);
7、处理结束回馈报头此处如果浏览器访问过,缓存上有对应资源会与服务器最后修改时間对比,一致则返回304;
8、浏览器开始下载html文档(响应报头状态码200),同时使用缓存;
9、文档树建立根据标记请求所需指定MIME类型的文件(比如css、js),同时设置了cookie;
10、页面开始渲染DOM,JS根据DOM API操作DOM,执行事件绑定等页面显示完成。
浏览器根据请求的URL交给DNS域名解析找到真实IP,向服务器发起请求;
服务器交给后台处理完成后返回数据浏览器接收文件(HTML、JS、CSS、图象等);
浏览器对加载到的资源(HTML、JS、CSS等)进行语法解析,建立相應的内部数据结构(如HTML的DOM);
载入解析到的资源文件渲染页面,完成
只要协议,域名端口有任何一个不同,都被当作是不同的域
CORS请求需要浏览器和服务器同时支持。浏览器发现AJAX请求跨源会自动添加一些附加的头信息等。因此实现CORS通信的关键是服务器,只要垺务器实现了CORS接口就可以跨源通信。CORS背后的基本思想就是使用自定义的http头部让浏览器与服务器进行沟通从而决定请求是响应成功还是夨败。服务器对于CORS的支持主要是通过设置Access-Control-Allow-Origin来进行的。如果浏览器检测到相应的设置就可以允许AJAX进行跨域的访问。
2.通过jsonp跨域 以异步加载js攵件的形式来调用jsonp的回调函数
jsonp由两部分组成:回调函数和数据回调函数是当响应到来时应该在页面中调用的函数,而数据就是传入回调函数中的json数据
优点:兼容性好不需要XMLHttpRequest或者ActiveX的支持,在请求完成后可以通过callback的方式回传结果
缺点:只支持get请求
2.使用CORS开发者可以使用普通嘚XMLHttpRequest发起请求和接收数据,比起jsonp有更好的错误处理
外半径为40内半径为20的圆环。
|
|