- 博客(9)
- 收藏
- 关注
原创 JavaScript精度问题的原因
JavaScript 中的数字按照 IEEE 754 的标准,使用 64 位双精度浮点型来表示。64位分为: 1位符号位 11位指数位 52位尾数位例如0.1 双精度中有52位的尾数位,主要问题在于0.1转为二进制为0.000110011001100.....无限循环,然后用双精度表示尾数部分为100110011001... ,最后四位是1001,然后规则是超过52位之后 进1舍去 就变成了1010 转换为十进制 偏大了。如下:http...
2021-03-16 19:12:22 772
原创 防抖和节流
防抖 非立即执行: function Debounce(fn,wait,...args){ let timeout; return function(){ const that=this; if(timeout) clearTimeout(timeout); timeout=setTimeout(()=>{ ...
2021-03-16 19:00:57 83
原创 HTTP的代理
代理的类别: 匿名代理:外界看不到客户端和服务端,只看见了代理服务器 透明代理:外界能看到客户端和代理 正向代理:靠近用户端,代替发送请求 反向代理: 靠近服务端,代替发送响应 由于代理是在中间层,可以做很多事: 负载均衡:代理服务器负责把请求分发给哪台源服务器 健康检查:利用"心跳"机制,把故障的源服务器踢出集群 内容缓存:暂存上下行的数据,减轻后端的压力 安全防护:隐匿 IP, 使用 WAF 等工具抵御...
2021-03-16 18:56:57 92
原创 HTTP头部字段
Host: (必须的) 当一台计算机托管了多个虚拟主机,IP一样,域名不一样,根据Host字段。 User-Agent:描述发起客户端的信息,以便服务器返回适合此浏览器或者系统的信息。 Date: 创建的时间。 Server: 返回服务器的信息。(不是必要出现,会把服务器信息暴露出来,可能受到攻击) 。 Content-Length:报文里请求体的长度。 ------ 编码、语言、压缩相关的 Accept/Content-Type: 客户端希望接受...
2021-03-16 18:54:56 188
原创 浏览器如何执行一段JS代码
计算机是不能理解高级语言的,更不能直接执行高级语言,它只能直接理解机器语言,所以使用任何高级语言编写的程序若想被计算机运行,都必须将其转换成计算机语言。 计算机是不能理解高级语言的,更不能直接执行高级语言,它只能直接理解机器语言,所以使用任何高级语言编写的程序若想被计算机运行,都必须将其转换成计算机语言,也就是机器码。而这种转换的方式有两种:编译和解释。各自的特点: 编译型语言:第一次执行会经过编译器生成一个平台相关的机器语言文件,以后每次运行都是执行这个文件,...
2021-03-16 18:09:36 630
原创 从输入URL到页面加载的过程(1)
首先,整个过程需要浏览器各个进程的相互配合。比如:浏览器进程主要负责处理用户的输入信息。网络进程负责发送请求。渲染进程负责把HTML、CSS、JS等文件解析成页面内容等等。具体的过程大致如下:1.用户输入当我们在地址栏输入内容的时候,浏览器会根据输入内容进行判断。如果是某个关键字,则会通过默认的搜索引擎合成带有关键字的URL。如果是某些符合URL规则但又不完整的,比如:直接输入baidu.com 最后会转换成完整的URL https://www.baidu.com/这时候按下回车,如果没有
2021-01-21 16:55:23 135
原创 JS里面Object、Function、自定义函数关系
首先对象在内存中有两个部分,一个是它本身,一个是它的原型对象。二者之间的关系就像母亲和父亲一样。在构造函数里面有一个prototype属性,指向它的原型对象,在原型对象中有一个constructor属性指向构造函数。当创建一个构造函数后,这个构造函数会自动创建一个prototype属性。当我们new 一个实例,可以把这个实例看成孩子。这个实例中会有一个__proto__属性,这个属性是构造函数给它的,告诉它的父亲是谁,指向它的父亲,也就是构造函数的原型对象。例如上图中的Foo1是通过new Foo().
2020-08-16 16:30:47 319
原创 JS中对象的基本概念
对象的概念JavaScript里面的数据类型共有六种(ES6新增第七种Symbol数据类型)。分别是undefined、null、boolean、number、string、这些为基本数据类型,最后一种为复杂数据类型,也就是object。称为对象,是一组数据和功能(函数)的集合,使用键值对来保存。对象的初始化 (1)字面量 使用"{}"作为对象边界,对象中包含多个属性,属性与属性之间通过","隔开,属性由属性名和属性值组成,通过":"隔开。属性名一般不添加引号,除非属性名中包
2020-08-16 15:47:16 344
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人