掘友等级
获得徽章 0
#每天一个知识点#
#javaScript
常量const算不算不可变:
1.如果const声明的变量赋值给了原始类型,如数字、bool、字符串,此时就是不可变的
2.如果const声明的变量赋值了复合类型,如数组、对象,此时变量指向的地址不可比变,但是复合类型的内容还是可以调整的, 如更改对象的属性值,这时候就是可变的
#每天一个知识点#
#javaScript
如何减少函数的副作用:纯函数和不可变
纯函数:一个函数返回结果的变化只依赖其参数,并且执行过程中没有副作用
不可变:减少程序被外界影响的同时,也减少对外界的影响
从值的角度:“纯函数”对值只影响一次,而“不可变”完全不影响
#每天一个知识点#
js函数式编程的副作用(主要是不可控的外部环境):
1.全局变量
2.IO 影响:类似前端浏览器中的用户行为,比如鼠标和键盘的输入,或者如果是服务器端的 Node 的话,就是文件系统、网络连接以及 stream 的 stdin(标准输入)和 stdout(标准输出)
3.网络请求
#每天一个知识点#
Vue2中修改指定数组的方法:array.splice(ind, 1, newValue);
#每天一个知识点#
CSS中的has() 选择器:允许根据子元素来为父元素设置样式
#每天一个知识点#
浏览器渲染过程:
1.解析HTML,生成DOM树
2.解析CSS,生成CSSOM树
3.将DOM树和CSSOM树结合,生成渲染树(Render Tree)
4.Layout(回流):根据生成的渲染树,进行回流(Layout),得到节点的几何信息(位置,大小)
5.Painting(重绘):根据渲染树以及回流得到的几何信息,得到节点的绝对像素
6.Display:将像素发送给GPU,展示在页面上。(这一步其实还有很多内容,比如会在GPU将多个合成层合并为同一个层,并展示在页面中
#每天一个知识点#
Promise
三种状态:pending:Promise的初始状态,表示异步操作正在执行
fulfilled:异步操作成功完成,并返回一个值,称为解决值(fulfillment value)
rejected:异步操作失败或被拒绝,并返回一个原因(reason),通常是一个错误对象
#每天一个知识点#
HTTP协议常用状态码的具体含义:
1.200:成功访问了资源
2.404:页面未找到
3.301:永久重定向
4.302:临时重定向
5.303:临时重定向后用GET方法获取资源
6.401:需要身份验证,网络环境下的认证是HTPP认证(BASIC认证、DIGEST认证)
7.403:客户端没有访问权限,访问被服务器拒绝了
8.503:服务器暂时无法响应请求
9.500:服务器发生了内部错误
#每天一个知识点#
CSS预处理器:less、sass、stylus
预处理器的作用:1.更好地组织CSS代码
2.提高代码复用率
3.提升可维护性
#每天一个知识点#
首屏加载优化有哪些方案:
1.Vue-Router路由懒加载(利用Webpack的代码切割)
2.使用CDN加速,将通用的库从vendor进行抽离
3.Nginx的gzip压缩
3.Vue异步组件
4.服务端渲染SSR
5.如果使用了一些UI库,采用按需加载
6.Webpack开启gzip压缩
7.如果首屏为登录页,可以做成多入口
8.Service Worker缓存文件处理
下一页