全部文章
共 1306 篇文章
CSS 中 position 有哪些值
position:允许您从正常的文档流布局中取出元素,并使它们具有不同的行为,例如放在另一个元素的上面,或者始终保持在浏览器视窗内的同一位置。 :静态定位是每个元素获取的默认值——它只是意味着“将元素放入它在文档布局流中的正常位置 ——这里没有什么特别的。 :与静态定位非常相似,占据在正常的文档流中,除了你仍然可以修改它的最终位置,包括让它与页面上的其他元素重叠。 如果不设置 top,right,bottom,left,则基本与stat...
HTTPS加密(握手)过程
(全称: Hypertext Transfer Protocol Secure, ),是以安全为目标的HTTP通道,简单讲是 的安全版。 HTTP+加密+认证+完整性保护 = HTTPS HTTP: 直接通过明文在浏览器和服务器之间传递信息。 HTTPS: 采用 对称加密 和 非对称加密 结合的方式来保护浏览器和服务端之间的通信安全。 对称加密算法加密数据+非对称加密算法交换密钥+数字证书验证身份=安全 HTTPS其实是有两部分组成:H...
instanceof 和 typeof 的实现原理
typeof 实现原理 一般被用于判断一个变量的类型,我们可以利用 来判断 , , , , , , 这七种类型,这种判断能帮助我们搞定一些问题,比如在判断不是 object 类型的数据的时候, 能比较清楚的告诉我们具体是哪一类的类型。但是,很遗憾的一点是, 在判断一个 object的数据的时候只能告诉我们这个数据是 object, 而不能细致的具体到是哪一种 object, 比如👉 要想判断一个数据具体是哪一种 object 的时候,...
React 关于setState同步或异步问题的理解
1\. 同步?异步? 在 的类式组件中,我们可以使用 方法更新 状态。但 有些时候 使用 之后,得不到最新的数据。 其实 React 中 本身执行的过程和代码是同步的,只是因为 React 本身的性能优化机制而导致的。React 中 合成事件 和 生命周期函数 的调用顺序在更新之前,导致在 合成事件 和 生命周期函数 中无法立刻得到更新后的值,形成了 异步 的形式。 假如在一个 合成事件 中,循环调用了 方法 次,如果 React 没有...
浅谈Object.prototype.toString.call(obj)功能及原理
Object.prototype.toString.call(obj)的功能 可能作为程序员以及即将迈入程序员门槛的小伙伴都知道 方法,功能简单但是确是类型检测界的“扛把子”。 首先来讲,对刚接触的人来说,我们为什么要使用这种奇怪的方法呢? 也可以检测类型,然而它有什么优势?我们来引入一道JavaScript的题目来参考: 使用 检测 变量“bar”是否为对象有什么缺点?如何避免? 缺点很明确,typeof可以准确的检测bar是否为对象...
简单理解高阶组件
什么是高阶组件 高阶组件是包装了另一个 组件的React组件 怎么理解高阶组件 可以简单将其理解成 “类工厂” 将一些可复用的逻辑写在高阶组件中,把一个普通组件传入高阶组件,通过返回值的形式,将处理好的组件return出来 即:高阶组件为一个函数,接收一个组件作为参数,并且返回值为一个新组件 高阶组件的目的 将可复用的逻辑进行组件化封装,更好的将逻辑与 UI 分离 让我们在增强原有组件的功能的同时,不破坏组件原有的特...
说下你对DOM树的理解
概念:DOM 是表述 HTML 的内部数据结构,它会将 Web 页面和 JavaScript 脚本连接起来,并过滤一些不安全的内容。 DOM 的生成:通过浏览器渲染引擎内部的 HTML 解析器,将 HTML 字节流转换为 DOM 结构 HTML 解析器并不是等整个文档加载完成之后再解析的,而是网络进程加载了多少数据,HTML 解析器便解析多少数据 DOM 生成简单过程:HTML 字节流 分词器 DOM 节点 DOM 树节点 通过分词器将...
重排(reflow)和重绘(repaint)
页面生成的过程: 1.HTML 被 HTML 解析器解析成 DOM 树; 2.CSS 被 CSS 解析器解析成 CSSOM 树; 3.结合 DOM 树和 CSSOM 树,生成一棵渲染树(Render Tree),这一过程称为 Attachment; 4.生成布局(flow),浏览器在屏幕上“画”出渲染树中的所有节点; 5.将布局绘制(paint)在屏幕上,显示出整个页面。 第四步和第五步是最耗时的部分,这两步合起来,就是我们通常所说的渲...
VSCode launch.json配置详解
ts node官网 启动配置必须设定请求类型,属性 , 分为 (启动) 和 (附加)两种 ,看下面例子: 下面是 和 类型共有的属性: 设置调试协议 尝试自动检测目标运行时使用的协议 新的V8调试器协议,解决遗留版本的多数问题,node versions = 6.3 and Electron versions = 1.7.4. 原始的v8调试器协议,node versions < v8.0 and Electron versions <...