http报文 http报文http报文分为请求报文与响应报文请求报文请求报文由:请求行请求头请求体三部分组成请求行组成1.请求方式:上图中,请求方式为GET。GET和POST是最常见的请求方式,除此以外还包括DELETE、HEAD、OPTIONS、PUT、TRACE2.请求对应的URL地址,它和报文头的Host属性组成完整的请求URL3.协议名称及版本号,如上图的‘HTTP/1.1’...
客户端存储之storage 客户端存储之StorageStorage(或者更准确的说——Web Storage)介绍什么是StorageStorage是一种Web存储机制(实现客户端存储的一种方式)为什么会有StorageStorage的目的是克服由cookie存储所带来的限制——当数据需要被严格控制在客户端而无需持续的将数据发送回服务器。其主要实现两个目标:1.提供一种cookie之外的存储会话数据的途...
手写map 手写mapSelfMap.prototype.getHash = function (key) {//计算key的hash值 let hash = 0; if (typeof (key) === 'string') {//String类型hash值 const seed = 31; let len = key.length; for...
Map Map与SetMap出现原因在Map之前,我们都用对象来存储键值对。而在对象中,键都会被转换为字符串(无论其之前是什么类型)。即在对象中,我们只能用字符串作为键。为了解决上述问题,Map出现了。在Map中,键与值可以是任意类型,且不会被类型转换Map的使用Map作为一个构造函数,我们首先需要通过它创建一个Map对象:let map = new Map();然后通过下列Map提供的...
水平垂直居中 水平垂直居中通过绝对定位.center{ width: 100px; height: 100px; background-color: red; position: absolute; top: 50%; left: 50%; margin-left: -50px; margin-top:-50px;}该种方式要求元素必须要有明确的宽高translate.center...
Ajax Ajax(Asynchronous JavaScript and XML)这一技术能够异步向服务器请求额外的数据而不用刷新整个页面。即我们通过Ajax向服务器获取数据后,再使用DOM将数据放入页面。该技术的核心是——XMLHttpRequest(xhr)对象。Ajax的特点是:使用脚本操纵HTTP,实现服务器与浏览器间的数据交换。且不会导致整个页面重载创建XMLHttpRequest对象我...
迭代器 迭代器与生成器#迭代器###基本概念可迭代对象(Iterable)在MDN中有这样一句话:为了变成可迭代对象, 一个对象必须实现 @@iterator 方法, 意思是这个对象(或者它原型链上)必须有一个名字是 Symbol.iterator 的属性。该属性对应一个方法,该方法返回一个迭代器简单说来就是——凡是对象本身或其原型链上有Symbol.iterator方法,那么该对象就是一个可...
严格模式下 严格模式下‘use strict’是一种在代码运行时,自动执行更严格的代码解析和错误处理的方法严格模式的特点如下:不能使用:with、arguments.callee、function(函数引用).caller变量必须先声明再赋值call、apply、bind参数为undefined或null时,this指向就为undefined/nullarguments与形参的映射关系将不存在...
get与post的区别 get与post的区别基于RFC规范来说get与post语法完全相同,但是RFC给get与post规定了语义——get用来获取数据,post用来发送数据浏览器实现的RFCget的数据被追加到url中,并对所有人可见。而post的数据不追加到url中get对数据长度有限制,post无限制get历史参数会保留在浏览器历史记录中,而post不会。结合1,因此我们认为post较get更安全...
ES6中的字符串API.md ES6中的字符串扩展与数组扩展#字符串扩展includes用于判断一个字符串是否包含在另一个字符串中,根据情况返回 true 或 false语法:str.includes(searchString[, position])searchString——要在此字符串中搜索的字符串;position——可选。从当前字符串的哪个索引位置开始搜寻子字符串,默认值为0let str = 'to b...
js浮点数精度问题.md JS浮点数精度问题var a = 0.1 + 0.2;var b = 0.3;console.log(a===b);//falseconsole.log(a);//0.30000000000000004这是因为浮点数有时并不能准确的转换为二进制数。因此,内部进行二进制运算时会有精度误差怎么解决呢?function almostEqual(num1, num2) { Number....
css中的常用单位.md css中的常用单位许多CSS属性后面都会有单位。而且在实际中发现这一块存在问题,所以查找资料与文档,做些总结虽然种类很多,但仅说说几个常用的em1em定义为该元素的font-size值。比如,如果元素的font-size值为14px,那么在该元素中1em=14px如果元素的font-size值是一个相对值,那么会将其计算后在用于衡量emrem当使用 rem 单位,他们转化为像素大小取...
document write.md document.write我们都很熟悉,document.write用于向document.open打开的文档流中写入内容。但是document.write很可能会造成文档的重写我们先来补充一些理论知识:如果document.write向文档流中写入内容时,文档流没有打开。那么document.write会自动调用document.open打开文档流如果在文档加载完毕后调用docum...
!DOCTYPE html的作用.md 的作用DOCTYPE是Document Type的简写。用于声明文档的解析类型因为HTML 4.01是基于SGML(标准通用标记语言)的。因此,在HTML 4.01中,声明时还要引用DTD(文档类型定义)。DTD指定了标记语言的规则,文档可根据DTD语法规则验证格式是否符合此规则。确保浏览器能够正确渲染内容由于HTML 4.01需要引入DTD,因此,我们常会看到如下形式:<!D...
览器里输入url后发生的事情.md 浏览器输入URL后发生的事情这篇文章主要理一理浏览器从发送请求到接受到响应数据这个过程中,都发生了什么事!(标题的顺序即为整个过程中发生的事情的顺序)我们从域名解析阶段与请求和响应阶段来叙述从域名解析直至获取到资源的整个过程所发生的事域名解析阶段以www.baidu.com为例首先应该明白,域名是倒着解析的,即从顶级域名开始解析。浏览器需要的得到域名对应的IP才能访问到相关服务器,因此需...
同源策略(未完成).md 同源策略怎样才算同源?简单来说:协议相同、域名相同、端口相同则称为同源协议TCP协议是基于连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接。UDP协议它是一个“非连接”协议。就是在正式通信前不必与对方先建立连接,不管对方状态就直接发送,而且发送了之后不管对方是否接受到(即只管发送,发了不管)端口http协议的端口默认为80;https默认为443。...
cookie.md 客户端存储之cookie什么是cookie和为什么有cookie什么是cookiecookie是指web浏览器存储的少量数据(注意:这些数据是由服务器给浏览器的,然后由浏览器存储保管)。这些数据是与你访问的页面或站点相关的为什么会有cookie首先我们应该知道——HTTP协议是无状态的什么是协议的状态——协议的状态是指:下一次传输可以记住上一次传输的信息的能力。从传统WEB上看...
原型 原型原型的基本知识什么是原型?在js中,我们创建的每个函数都有一个prototype属性,该属性是一个指针,指向一个对象。而这个prototype属性就是原型(也可以叫原型对象,因为其本身是一个对象)原型的默认属性首先明白下列知识点:js中的对象都会有一个内置的属性——[[Prototype]](在Chrome、Firefox等浏览器中,其被形象化为__pro...
json JSON(JavaScript Object Notation)—JavaScript对象表示法关于JSON应该明白的几点:JSON是一种轻量级的数据格式,相对于以前的XML更加方便简洁JSON虽然是利用了JavaScript的语法模式来表示数据,但是其并不从属于JavaScript,其他语言一样拥有JSON诸多语言都有针对JSON的解析器与序列化器,JavaScript也不例外...
SVG之获取路径长度,创建获取SVG元素(6) SVG之获取路径长度,创建获取SVG元素(6)说明:代码中,所有的namespace(命名空间)是固定的。需要记住,这是对SVG元素进行DOM操作所必需的获取SVG元素注意:是获取SVG元素哦!不是svg元素。意思就是获取所有SVG标签元素document.getElementsByTagNameNS(namespace, ‘SVG标签名’)上述方法用来获取SVG元素...