关键字 async await 如果函数声明之前添加了关键字async那么这个函数返回值就是一个Promise.resolve()包裹,是一个promise对象。await只能在async函数中使用。 使用await会影响性能,代码无法并发。但是执行代码是参照事件循环执行机制执行的。所以一般使用这一对关键字时说明这个函数内执行的程序必须按照特定的顺序执行才能正确的完成任务。所以要是可并发无关联的代码建议还是直接使用promise对象。
Proxy 是es6新加的功能,可以自定义对象中的操作。
跨域,出现原理是浏览器的同源策略。协议,域名,端口有一个不同就是跨域。
常见解决跨域的方法 有四种。
1、jsonp,原理就是利用Script标签没有跨域限制的漏洞,通过
//发送消息端
window.parent.postMessage('message', 'http://test.com')
// 接收消息端
var mc = new MessageChannel()
mc.addEventListener('message', event => {
var origin = event.origin || event.originalEvent.origin
if (origin === 'http://test.com') {
console.log('验证通过')
}
})
/ 发送消息端
window.parent.postMessage(‘message’, ‘http://test.com’)
// 接收消息端
var mc = new MessageChannel()
mc.addEventListener(‘message’, e