http、https、https原理 首先服务器向CA机构进行申请认证,提交服务端的公钥和服务方的相关信息。CA利用单向散列函数(Hash函数)对公钥和服务方的信息进行运算,生成一串固定长度的数字摘要,同时这也是数字指纹,可用于判断数据有没有被篡改。CA机构拥有一对公钥和私钥,CA使用私钥对数字摘要进行加密形成数字签名,数字签名和证书的明文信息共同组成数字证书。SSL数字证书的内容包括多个关键信息,这些信息共同确保了证书的有效性和可信度。证书版本:指证书遵循的版本标准,如X.509v3。
根据标签出现的频次渲染不同大小的圆和文字,圆随机摆放且相互之间不重叠 这里其实还需要考虑到适配的问题,如果矩形区域被缩放,那么文字和圆的大小也应该进行缩放,我这里采用的是scale的方式,计算当前屏幕相对于1920(我们开发的参考尺寸是1920*1080)的比例,然后将对应的maxFontSize * scale ,maxWidth * scale,最小的尺寸就不需要再考虑啦,已经很小啦,当然如果最大尺寸被缩放到比最小的都小的时候就直接取最小尺寸吧!该公式成立则两圆相交,其中(x1,y1)为圆1的中心坐标,(x2,y2)为圆2的中心坐标,r1、r2分别为两个圆的半径。
封装异步的方法Promise/Async 在日常的开发工作中,常常会碰到需要在获取到一个或多个异步方法(比如异步请求)的结果后再执行某个操作的情况,当我们希望将这个获取到结果的方法独立封装后使用时,通常可以使用Promise或async/await的方法来进行封装。假设我们需要执行多个异步操作后获取结果后再执行某些操作,如图。如上图,设置定时器2秒后打印文字,并且在打印完文字后拿到返回值后再去执行某些操作,定时器2秒后打印这个操作是异步的,通过promise的方法可以确保拿到异步操作的结果。
层叠顺序、z-index及层叠上下文 在position:relative;z-index:2;的元素中出现一个fixed固定定位的子元素时,即使子元素的z-index的值大于2,实际渲染的时候会发现子元素的渲染顺序仍然是z-index:2
overflow-x和overflow-y不一致时的表现 当设置一个轴的***overflow***为***visible***时,另外一个轴为不同值(auto/hidden/clip)时,***visible***的行为会像***auto***一样
ES6的class 构造函数的prototype属性在ES6的类上面继续存在,定义在类内部的函数相当于定义在类的prototype属性上,prototype对象的constructor属性,直接指向“类”的本身, 但。,这就称为**“静态方法”**,静态方法包含this关键字,ES6 的类,可以看作构造函数的另一种写法。类的数据类型就是函数,类本身就指向构造函数。
观察者模式和发布订阅模式 观察者模式与发布订阅模式的区别:1、观察者模式中只有观察者和被观察者,发布订阅模式中有发布者、订阅者、调度中心2、观察者模式是被观察者发生变化时自己通知观察者,发布订阅模式是通过调度中心来进行分布订阅操作。
Vue2的defineProperty与Vue3的proxy对比 Vue2中使用Object.defineProperty实现数据响应式,初始化数据时给data中的每个属性使用defineProperty重新定义get,set方法,如果data中的属性是对象时,会循环给对象中的每个属性进行重新定义。vue2响应式数据源码。vue3响应式数据源码。
微信小程序解决多级页面返回及实现返回时弹出层提示 在微信基础库2.16.0以后开始支持page-container组件,通过这个组件可以对右滑手势返回、安卓物理返回键和navigateBack返回三种操作进行控制。使用下列代码可以实现点击页面返回、右滑手势返回、安卓物理键返回直接返回两级,首次点击返回动作关闭的是page-container组件。也可通过该方法实现返回前页面提示效果。