
JavaScript 中对 Unicode 进行 base64 编码时需要注意的问题
如果在解码后取最后一个字符(�)并检查其十六进制值,你会发现它是\uFFFD,而不是原来的\uDE75。虽然没有失败或出错,但输入和输出数据都发生了静悄悄的变化。为什么会这样?

如何实现在 JavaScript 循环里的 async/await
这段代码会出现语法错误。为什么呢?因为我们不能在同步函数中使用 await。正如你所看到的,”processArray “是同步函数。但我们用于 forEach 的匿名函数是同步函数。

如今你不再需要 JavaScript 来实现这些效果了,原生CSS+HTML就可以
高兴通知您,浏览器开发者和规范编写者都已经将许多功能移植到CSS和HTML中,而这些功能在几年前还需要JS。

JavaScript 全栈解决方案比较:Angular、React、Vue.js 的对比
为了在这些技术栈中做出明智选择,让我们先从核心组件聊起,再对各自前端框架(React、Angular 和 Vue)进行简化比较,考虑到底哪种更符合实际需求。
一个颇为有趣的 JavaScript 问题,除非你提前看答案,否则很难回答出来
这篇文章通过一个有趣的 JavaScript 问题,揭示了该 JavaScript 的复杂性和问题的巧妙之处。

JavaScript程序员15分钟掌握80%的Rust语言知识
如果你是一位JavaScript程序员,本文将带领你迅速的理解Rust这种编程语言的诸多语言知识。网上有很多关于Rust的零基础教程,但是,既然你已经是一位程序员了,为什么不跟自己已经熟悉的编程语言对比一下呢?

三个点(…)在JavaScript语法中的作用:解构赋值
解构赋值语法是一种 Javascript 表达式。通过解构赋值,可以将属性/值从对象/数组中取出,赋值给其他变量。

前端技术展示:一百种时钟
这里有100种使用css+js+html制作的时钟钟表手表等,有不少是使用纯css3或HTML5开发出来的,有些是使用SVG,JavaScript等技术制作的。

JavaScript异步剪贴板 API
在过去的几年里我们只能使用 document.execCommand 来操作剪贴板。不过,这种操作剪贴板的操作是同步的,并且只能读取和写入 DOM。现在 Chrome 66 已经支持了新的 Async Clipboard API,作为 execCommand 替代品。

JavaScript 2018: 有些东西你需要关注,有些你可以略过
在2018里,对于聪明的开发者们可以去熟悉的东西, Brown 给出了他对 JavaScript 生态系统中各个方面最前沿,至少也是很有用的预测。有两点需要说明的是: 首先,他基于所有 JavaScript于 标准的这些变化中,指出了一些好的可以去了解的,尽管里面所罗列的一些东西可能不是你所关注的。

JavaScript ES6 里最重要的5个特性
从在过去的12个月里所从事的不同 JavaScript 相关项目中,我发现有 5 个 ES6 特性是不可或缺的,因为它们真正简化了 JavaScript 普通任务的完成方式。你心中的前 5 名可能和我的不一样,如果是的话,我希望你能在结尾的评论区分享它们。

setTimeout延时0毫秒的作用
简单点可以这么说: js是单线程的,是基于事件循环的。setTimeout函数是异步的,异步的事件会加入一个队列,当同步的任务执行完之后,才会执行。

现代JavaScript使用技巧:ES6中的简写语法
ES6为一些已有的功能提供了非破坏性更新,这类更新中的大部分我们可以理解为语法糖,称之为语法糖,意味着,这类新语法能做的事情其实用ES5也可以做,只是会稍微复杂一些。本章我们将着重讨论这些语法糖,看完之后,可能你会对一些你很熟悉的ES6新语法有不一样的理解。

每个JavaScript程序员都需要知道的5个数组方法
这篇文章将会向大家简要的介绍JavaScript里关于数组的最重要的5个方法,这5个方法是每个想要高效的进行JavaScript编程的程序员必须知道的。

28副用JavaScript绘制的动态艺术绘画作品
使用JavaScript和HTML5技术绘制具有动态效果(流水、下雨、飘雾、飞雪等),而且还要伴音,水声、雨声、风声,栩栩如生。

用纯JavaScript实现“复制到剪贴板”功能
,虽然是可以实现,但有一个弊端,它使用的是flash技术,而如今,很多浏览器开始不支持flash技术,所以,我们需要不依赖flash技术的JavaScript方法来实现浏览器端的剪贴板操作。今天给大家介绍的就是用纯JavaScript实现的解决方案:clipboard.js。

这个API很“迷人”——Fetch API
JavaScript 通过XMLHttpRequest(XHR)来执行异步请求,这个方式已经存在了很长一段时间。虽说它很有用,但它不是最佳API。在Fetch API中,最常用的就是fetch()函数。它接收一个URL参数,返回一个promise来处理response。response参数带着一个Response对象。

Javascript 严格模式(“use strict”)详解
除了正常运行模式,ECMAscript 5添加了第二种运行模式:”严格模式”(strict mode)。顾名思义,这种模式使得Javascript在更严格的条件下运行。

使用var定义变量和不使用var的本质区别
“不管是使用var关键字(在全局上下文)还是不使用var关键字(在任何地方),都可以声明一个变量”。这貌似一个错误的概念:任何时候,变量只能通过使用var关键字才能声明。

使用IntersectionObserver更高效的监视某个页面元素是否进入了可见窗口
IntersectionObserver 能让你知道一个被观测的元素什么时候进入或离开浏览器的可见窗口。

HTML5 Canvas 计量器绘制工具Canvas Gauges
Canvas Gauges是一个用来在html5 canvas是绘制各种计量器、计量仪图表的JavaScript工具库。
下面的这里例子,点击仪表图表可以参考源代码,鼠标移到上面可以看到各种一般的动画效果。在手机或平板上,用手指按住它们,动画就会发生。

getClientRects() 和 getBoundingClientRect() 的用法和区别
getBoundingClientRect()用于获得页面中某个元素的左,上,右和下分别相对浏览器视窗的位置。

你不需要Lodash/Underscore——用JavaScript原生函数替代
Lodash和Underscore是两款非常流利的JavaScript工具库,广泛的被程序员用于WEB前端开发。然而,如果你使用的是现代浏览器,你会发现,有很多的方法、函数实际是可以使用原生的JavaScript函数代替,这要感谢ECMAScript5 [ES5]和ECMAScript2015 [ES6]。

JavaScript标记上的defer与async的作用与区别
如果脚本不依赖于任何脚本,并不被任何脚本依赖,那么则使用 defer。 如果脚本是模块化的,不依赖于任何脚本,那么则使用 async。

理解 JavaScript Async/Await 新语法
受到Zeit团队博文的启发,我们的PayPal团队不久之前将服务器端数据库迁移到了Async/Await上。我想要和你们分享一下我的经验。

理解 javascript 里的 bind() 函数
bind() 方法会创建一个新函数,当这个新函数被调用时,它的 this 值是传递给 bind() 的第一个参数, 它的参数是 bind() 的其他参数和其原本的参数。

前端程序员必须知道的高性能Javascript知识
想必大家都知道,JavaScrip是全栈开发语言,浏览器,手机,服务器端都可以看到JS的身影。 本文会分享一些高效的JavaScript的最佳实践,提高大家对JS的底层和实现原理的理解。