Faz Blog 
  • 首页
  • 分类
  • 标签
  •   
  •   

V8是如何实现函数的?

如果你熟悉了一门其他流行语言,再来使用 JavaScript,那么 JavaScript 中的函数可能会给你造成一些误解,比如在 JavaScript 中,你可以将一个函数赋值给一个变量,还可以将函数作为一个参数传递给另外一个函数,甚至可以使得一个函数返回另外一个函数,这在一些主流语言中都很难实现。 JavaScript 中的函数非常灵活,其根本原因在于 JavaScript 中的函数就是一种特殊

2020-08-20
V8
浏览器 JavaScript V8

V8是如何实现对象的?

JavaScript 中的对象是由一组属性和值的集合,从 JavaScript 语言的角度来看,JavaScript 对象像一个字典(map),字符串作为键名,任何数据结构可以作为键值,可以通过键名读写键值。 然而在 V8 实现对象存储时,并没有完全采用字典的存储方式,这主要是出于性能考虑。因为字典是非线性的数据结构,查询效率会低于线性的数据结构,V8 为了提升存储和查找效率,采用了一套复杂的存储

2020-08-18
V8
浏览器 JavaScript V8

HTTPS

谈到HTTPS, 就不得不谈到与之相对的HTTP。HTTP的特性是明文传输,因此在传输的每一个环节,数据都有可能被第三方窃取或者篡改,具体来说,HTTP 数据经过 TCP 层,然后经过WIFI路由器、运营商和目标服务器,这些环节中都可能被中间人拿到数据并进行篡改,也就是我们常说的中间人攻击。 为了防范这样一类攻击,我们不得已要引入新的加密方案,即 HTTPS。 HTTPS并不是一个新的协议, 而是

2020-08-18
HTTP
HTTP 安全

浏览器安全

通过上篇文章的介绍,我们知道了同源策略可以隔离各个站点之间的 DOM 交互、页面数据和网络通信,虽然严格的同源策略会带来更多的安全,但是也束缚了 Web。这就需要在安全和自由之间找到一个平衡点,所以我们默认页面中可以引用任意第三方资源,然后又引入 CSP 策略来加以限制;默认 XMLHttpRequest 和 Fetch 不能跨站请求资源,然后又通过 CORS 等方法来支持其跨域。 不过支持页面中

2020-08-18
浏览器
浏览器 安全

浏览器的同源策略

同源策略是浏览器网络安全中重要的安全策略。一个正常的逻辑是,一个网站的控制权应该只能是网站的拥有者,显然别人想到我的网站请求一些数据或者把网站的内容改一改是侵犯了网站拥有者的隐私和数据安全。 但 Web 世界是开放的,它最重要的目的就是资源共享。Web 世界的理念就是,任何资源都可以接入其中。我们的网站可以加载并执行别人网站的脚本文件、图片、音频、视频等资源,甚至可以下载其他站点的可执行文件。 但

2020-08-18
浏览器
跨域

登录鉴权

登录是每个网站中都经常用到的一个功能,在页面上我们输入账号密码,敲一下回车键,就登录了,但这背后的登录原理你是否清楚呢?今天我们就来介绍几种常用的登录方式。 Cookie + Session 登录 Token 登录 SSO 单点登录 OAuth 第三方登录 Cookie + Session 登录HTTP 是一种无状态的协议,客户端每次发送请求时,首先要和服务器端建立一个连接,在请求完成后又会断

2020-08-17
其他
鉴权

HTTP缓存

缓存(Cache)是计算机领域里的一个重要概念,是优化系统性能的利器。 由于链路漫长,网络时延不可控,浏览器使用 HTTP 获取资源的成本较高。所以,非常有必要把“来之不易”的数据缓存起来,下次再请求的时候尽可能地复用。这样,就可以避免多次请求 - 应答的通信成本,节约网络带宽,也可以加快响应速度。 试想一下,如果有几十 K 甚至几十 M 的数据,不是从网络而是从本地磁盘获取,那将是多么大的一笔节

2020-08-17
HTTP
浏览器 HTTP

HTTP的前世今生(二)

HTTP/2HTTP/1.1 发布之后,整个互联网世界呈现出了爆发式的增长,度过了十多年的“快乐时光”,更涌现出了 Facebook、Twitter、淘宝、京东等互联网新贵。 这期间也出现了一些对 HTTP 不满的意见,主要就是连接慢,无法跟上迅猛发展的互联网,但 HTTP/1.1 标准一直“岿然不动”,无奈之下人们只好发明各式各样的“小花招”来缓解这些问题,比如以前常见的切图、JS 合并等网页优

2020-08-17
HTTP
浏览器 HTTP

HTTP的前世今生(一)

如果说程序员要拜祖师爷,那个人一定是图灵。如果前端程序员要拜祖师爷,除了图灵,还要拜一拜 蒂姆·伯纳斯·李。蒂姆·伯纳斯·李的大名我想不用多赘述,他不仅发明了万维网,还创立了世界上第一个网站。如此创世之举,值得我们这些享受他福利的受益者仰视。除此之外,他还发明了 HTTP ,即超文本传输协议。有了 HTTP 后,才可以将超文本系统完美的运行在互联网上,让各地的人们能够自由的共享信息。 如今,随着浏

2020-08-17
HTTP
浏览器 HTTP

浏览器是怎么实现async/await的?

众所周知,JavaScript 是单线程语言,但是在实际业务场景中,却有大量的异步场景。在早期只能通过回调函数的方式处理异步操作,但回调函数的方式也出现了一些弊端,比如回调地狱,代码逻辑不连续等。后来社区经过探索推出了 Promise,使得处理异步逻辑变得线性,基本解决了回调函数的问题。接着又出现了基于 Generator 函数的异步方案,最后出现了 async/await,可以说它比较完美的解决

2020-08-16
浏览器
浏览器 JavaScript
12

搜索

Hexo Fluid