1、闭包的概念?优缺点?
闭包的概念:闭包就是能读取其他函数内部变量的函数。
优点:
避免全局变量的污染
希望一个变量长期存储在内存中(缓存变量)
缺点:
内存泄露(消耗)
常驻内存,增加内存使用量
2、虚拟 DOM 实现原理?
虚拟DOM本质上是JavaScript对象,是对真实DOM的抽象
状态变更时,记录新树和旧树的差异
最后把差异更新到真正的dom中
3、watch、methods 和 computed 的区别?
watch 为了监听某个响应数据的变化。computed 是自动监听依赖值的变化,从而动态返回内容,主要目的是简化模板内的复杂运算。所以区别来源于用法,只是需要动态值,那就用 computed ;需要知道值的改变后执行业务逻辑,才用 watch。
methods是一个方法,它可以接受参数,而computed 不能,computed 是可以缓存的,methods 不会。computed 可以依赖其他 computed,甚至是其他组件的 data。
4、GET 和 POST 请求的区别?
GET 参数通过 url 传递,POST 放在 body 中。(http 协议规定,url 在请求头中,所以大小限制很小)
GET 请求在 url 中传递的参数是有长度限制的,而 POST 没有。原因见上↑↑↑
GET 在浏览器回退时是无害的,而 POST 会再次提交请求
GET 请求会被浏览器主动 cache,而 POST 不会,除非手动设置
GET 比 POST 更不安全,因为参数直接暴露在 url 中,所以不能用来传递敏感信息
对参数的数据类型,GET 只接受 ASCII字符,而 POST 没有限制
GET 请求只能进行 url(x-www-form-urlencoded)编码,而 POST 支持多种编码方式
5、webpack有哪些优点?
专注于处理模块化的项目,能做到开箱即用,一步到位
可通过plugin扩展,完整好用又不失灵活
使用场景不局限于web开发
社区庞大活跃,经常引入紧跟时代发展的新特性,能为大多数场景找到已有的开源扩展
良好的开发体验