vue 为什么 使用数组的方法就可以更新UI
和对象一样,也是使用了Object.defiendProperty() 的劫持
var oldMethodPrototype = Array.prototype;
var obj = object.creat(oldMethodPrototype);
['push','pop','shift','unshift'].forEach(method=>{
object.definedProperty(obj,method,{
get:function(){
},
set:function(val){
console.log("拦截",val);
}
})
})
名称 | AMD | CMD | Common.js | ES6 |
实现 | 依赖前置、异步定义,提前执行:所有需要用到的变量需要在最前面定义好 | 依赖就近,同步定义,延迟执行: | node.js | |
RequireJS | Sea.js | |||
优点 |
| 不需要引入其他js | ||
// AMD 默认推荐的是 | // CMD define(function(require, exports, module) { var a = require('./a') a.doSomething() // 此处略去 100 行 var b = require('./b') // 依赖可以就近书写 b.doSomething() // ... }) | export defulat import | ||
运行时确定 | 运行时确定 | 运行时确定 | 编译时确定 |
前端安全
https://zhuanlan.zhihu.com/p/266452793
csrf | xss | |
原理 | CSRF 攻击是攻击者借助受害者的 Cookie 骗取服务器的信任,可以在受害者毫不知情的情况下以受害者名义伪造请求发送给受攻击服务器,从而在并未授权的情况下执行在权限保护之下的操作。 | 恶意攻击者往 Web 页面里插入恶意 Script 代码,当用户浏览该页之时,嵌入其中 Web 里面的 Script 代码会被执行,从而达到恶意攻击用户的目的。 |
常见的类型 | XSS攻击可以分为3类:反射型(非持久型)、存储型(持久型)、基于DOM。 | |
怎么防止 | 1.验证码 2.Referer Check,检查请求是否来自合法的”源” 3.添加 token 验证(token==令牌) | 1.HttpOnly 防止劫取 Cookie,能阻止 XSS 攻击后的 Cookie 劫持攻击。 2.输入检查 3.输出检查 |
Midway
使用了回调函数,其实就是在使用闭包
之前我们说过 this 是在运行时进行绑定的,并不是在编写时绑定,它的上下文取决于函数调 用时的各种条件。this 的绑定和函数声明的位置没有任何关系,只取决于函数的调用方式。
当一个函数被调用时,会创建一个活动记录(有时候也称为执行上下文)。这个记录会包 含函数在哪里被调用(调用栈)、函数的调用方法、传入的参数等信息。this 就是记录的 其中一个属性,会在函数执行的过程中用到。
在下一章我们会学习如何寻找函数的调用位置,从而判断函数在执行过程中会如何绑定 this。
VUE 跨组件通信
provide/inject
https://zhuanlan.zhihu.com/p/98916050
虚拟DOM 的优点
保证性能下限。
不需要操作DOM。
可以做跨端。
webpack 的优化
微信小程序
computed 的原理