CommonJS 模块和 ES6 模块的区别
发表于 更新于 本文字数: 11k 阅读时长 ≈ 10 分钟
历史上,JS 一直没有模块(module)体系,无法将一个大程序拆分成互相依赖的小文件,再用简单的方法拼装起来。其他语言都有这项功能,比如 Ruby 的 require
、Python 的 import
,甚至就连 CSS 都有 @import
,但是 JS 任何这方面的支持都没有,这对开发大型复杂的项目形成了巨大障碍。
在 ES6 出来之前,社区制定了一些模块加载方案,最主要的有 CommonJS 和 AMD 两种。前者用于服务器,后者用于浏览器。ES6 在语言标准的层面上,实现了模块功能,而且实现得相当简单,完全可以取代 CommonJS 和 AMD 规范,成为浏览器和服务器通用的模块解决方案。
ES6 模块的设计思想是尽量的静态化,使得编译时就能确定模块的依赖关系,以及输入和输出的变量。CommonJS 和 AMD 模块,都只能在运行时确定这些东西。比如,CommonJS 模块就是对象,输入时必须查找对象属性。
Deno 1.0:你需要了解的
发表于 更新于 本文字数: 12k 阅读时长 ≈ 11 分钟

Deno 是使用 V8 引擎并用 Rust 语言编写的 JavaScript 和 TypeScript 的简单,现代且安全的运行时。它汇集了许多最佳的开源技术,并在一个小的可执行文件中提供了全面的解决方案。它还解决了 Ryan 在我对Node.js感到遗憾的十件事演讲中谈到的设计缺陷。
前言
不知道大家还记不记得两年前在 Github 发生的「学不动」事件。那次事件的起因便是著名的 Node 之父 Ryan Dahl 宣布新开一个叫 Deno 的项目,于是就有国人以一种类似于贴吧灌水的形式在 Deno 的 issiue 区里用中文大量发“学不动啦”,“求别更新”等帖子,顿时引起一片争论。如今两年时间过去了,ry 也带着他的 Deno 1.0 正式与我们会面。不论我们学的动还是学不动,技术就在那里,不以人的意志为转移。在这篇文章中,我们将会涵盖所有令人激动的 Deno 特性。
前端安全总结
发表于 更新于 本文字数: 8.7k 阅读时长 ≈ 8 分钟
随着互联网的高速发展,网络迅速普及。人们在享受网络带来便捷的同时,也面临着日益严重的网络安全问题。在一些出名的案例中,上百万的密码、邮件地址和信用卡信息被泄露给了公众,导致网站用户面临个人尴尬和财务威胁。在移动互联网时代,前端人员除了传统的 XSS、CSRF 等安全问题之外,又时常遭遇网络劫持等新型安全问题。当然,浏览器自身也在不断地进化和发展,引入内容安全策略(Content Security Policy)、Same-Site Cookies 等新技术来增强安全性,但是仍存在很多潜在的威胁,这需要前端开发人员不断进行“查漏补缺”。
本文介绍以下几种常见的前端安全问题及其解决方案:
- 同源策略
- XSS
- CSRF
- SQL 注入
- 点击劫持
window.opener
安全问题- 文件上传漏洞
macOS下使用国内镜像安装Homebrew
发表于 更新于 本文字数: 2.9k 阅读时长 ≈ 3 分钟