协议、域名、端口不一直都会导致跨域。
解决:
关闭浏览器的跨域检查
Cross-Origin Resource Sharing
携带Access-Control-Allow-Origin,如果要带cookie开启Access-Control-Allow-Credentials
在服务端进行Nginx反向代理
Node正向代理
webpack中可以配置proxy
JSONP(JSON with Padding: 利用了 script标签没有跨域限制的这个特性来完成的。
Websocket :方式本质没有使用了 HTTP 的响应头 因此也没有跨域的限制。(先由一个http发起连接)
**document.domain + Iframe:**只能用于二级域名相同的情况下。
数字、字符串、对象、布尔值、null、undefined
判断方法: Object.prototype.toString.call()
不用typeof:(对于引用类型,除了function之外返回的都是object)
instanceof运算符用于检查右边构造函数的prototype属性是否出现在左边对象的原型链中的任何位置。其实它表示的是一种原型链继承的关系。
typeof null; //object 无效
typeof [] ; //object 无效
typeof new Date(); //object 无效
typeof new RegExp(); //object 无效

https:使用对称/非对称加密,有状态的
https 握手阶段比较费时,会使页面加载时间延长 50%
宏任务包括:setTimeout,setInterval,DOM事件,AJAX请求
微任务包括:Promise,async/await
微任务执行时机比宏任务早
微任务先于DOM渲染,宏任务执行后与DOM渲染。

layout tree)(不是顺序执行的,为了尽块展示内容)
需要执行 JavaScript脚本之后才会渲染我们真正想要的页面(框架构架的页面都是)
不需要经过 JavaScript脚本的下载过程,即可直接构建出我们所希望的 DOM树并展示到页面中。
,每个页面对应的HTML文档在项目build构建时就已经生成好了,用户请求的时候服务端不需要发送其它请求和进行二次组装,直接将该HTML文档响应给客户端即可
call接受多个参数,apply接受数组,bind需要调用才执行
默认、隐形、显性、new(优先级反过来)
隐形:obj.foo()
存在隐形丢失:(let foo = obj.bar())
显性:call,apply
new:创建新对象,新对象会绑定到函数调用的 this
箭头函数:默认绑定外层this
translate使用3D变化)闭包是一种特殊的对象。它由两部分构成:函数,以及创建该函数的环境。
重要特征:闭包是访问另一个函数作用域中变量的函数。即内部的函数存在外部作用域的引用。(例如函数引用了全局的某个变量)
var a = 0
function foo(){
var b =14
function fo(){
console.log(a, b)
}
fo()
}
foo()
例如返回一个函数或使用回调函数。
作用:会形成全新的私有上下文,可保护函数的私有变量不受外部影响,但也会引起占内存回收问题,并会携带包含其它的函数作用域加大内存使用。
例如 不可能仅是一个元素,浏览器屏蔽了一些元素,他们就是shadowDOM,
shadowDOM通过挂载在一个host上来实现样式等,具有良好的封闭性。类似于一个树上一个叶子节点其实是另一颗树
webpack是前端工程化的代表,它主要作用是
loader:babel-loader,sass-loader
plugin:terser-webpack-plugin
Loader本质就是函数,在该函数中对接收到的内容进行转换,返回转换后的结果。(因为webpack只认识js,其他内容需要依赖loader转化)
plugin 监听广播出来的webpack生命周期事件,在合适的时机通过 Webpack 提供的 API 改变输出结果。
webpack,从entry开始解析Loader进行编译,转为Javascript文件webpack会通过发布订阅模式,向外抛出一些hooks,插件即可通过监听这些关键的事件节点,执行插件任务。将打包、压缩后的代码映射回源代码的技术,为debug服务
多进程,利用缓存,Tree shaking去除无用模块
width、height包含padding和border的大小contentmargin-top 元素自身会向上移动,同时会影响下方的元素会向上移动。margin-botom 元素自身不会位移,但是会减少自身供css读取的高度,从而影响下方的元素会向上移动。margin-left 元素自身会向左移动,同时会影响其它元素。margin-right 元素自身不会位移,但是会减少自身供css读取的宽度,从而影响右侧的元素会向左移动。非promise成功
所有成功返回结果数组
有一个失败则返回该错误
每个对象都有原型,原型之间存在原型链,原型链的存在让对象间继承了公有的属性的方法。
Object.getPrototypeOf()可以获取对象的原型。
在obj.prototype可以新增属性和方法。
对象的__proto__属性指向其原型对象,构造函数的prototype属性指向实例的原型对象。
beforeRouteLeave 守卫。beforeEach 守卫。beforeRouteUpdate 守卫。beforeEnter。beforeRouteEnter。beforeResolve 守卫。afterEach 钩子。DOM 更新。beforeRouteEnter 守卫中传给 next 的回调函数,创建好的组件实例会作为回调函数的参数传入。主轴水平,交叉轴从上往下
flex-direction: row | row-reverse | column | column-reverse
父容器
子元素

flex: 1, 对应的是1 1 0%, 相当于可扩大,可缩小,flex-basis为0%
flex: auto, 对应的是1 1 auto, 相当于可扩大,可缩小,flex-basis为auto
flex: 0, 对应的是0 1 0%, 相当于不可扩大,可缩小,flex-basis为0%
flex: none, 对应的是0 0 auto, 相当于不可扩大,不可缩小,flex-basis为auto