Web Components 与 Angular Component

关于组件的概念,现在使用已经很广泛了,我们今天就来深入的了解一下 Web ComponentsAngular 当中的 Component

前端字体优化

最近在工作当中遇到了关于前端字体优化的问题,主要是公司有一款产品是一个在线的编辑工具,其中可以提供给用户各种不同的字体来进行编辑操作,所以在载入编辑区的过程当中会变得十分缓慢,所以特意抽了些时间研究了一下,在这里顺便记录一下

JavaScript 中一些常用方法的实现

算是一些手写 API,常用方法的一些汇总,反正就是面试可能涉及到的一些手写功能可能都会有所涉及,不仅仅只是为了面试所用,也算是在这里做下汇总记录,方便以后可以快速查询(可以直接参考左边目录)

Angular 中的变化检测机制

今天在群里看到一个讨论,是关于 Angular 的变化检查机制,依稀记得在 AngularJS 当中是使用的脏检查机制,而在 Angular 2.x+ 之后的版本当中依然采用的是脏检查机制,不过使用的是进行优化过的版本,为了探明到底有啥区别,就打算抽点时间,研究研究新版本的脏检查机制,顺便记录记录,就当加深点印象了

为保持区别,文中所提到的 Angular 均为 2.x+ 的版本,而 AngularJS 则代表 1.x+ 的版本,不过本文当中的 Angular 大部分相关内容还是以 2.x+ 版本为主

之前在探讨 Angular 中的 ExpressionChangedAfterItHasBeenCheckedError 这个错误的时候也涉及到了一些 Angular 的变化检查机制的内容,所以今天就一起来深入的研究一下 Angular 当中的变化检查机制

迭代器与生成器

JavaScript 当中对集合中每个元素进行处理是很常见的操作,比如数组遍历、对象的属性遍历,以往这些操作是通过 for 循环、.forEach.map 等方式进行,借由迭代器机制为 MapArraystring 等对象提供了统一的遍历语法,以及更方便的相互转换

在最新的 ES6 当中为方便编写迭代器还提供了生成器(Generator)语法,迭代器和生成器将迭代的概念直接带入核心语言,并提供了一种机制来自定义 for-of 循环的行为,下面我们就来看看迭代器到底是一种怎样的语法

浏览器的渲染机制

在展开渲染机制相关内容之前,我们先来简单的了解一下常见的浏览器内核有哪些,浏览器的内核是指支持浏览器运行的最核心的程序,分为两个部分的,一是渲染引擎,另一个是 JavaScript 引擎(比如我们经常可以听到的 V8 引擎),渲染引擎在不同的浏览器中也不是都相同的,目前市面上常见的浏览器内核主要有以下这些

浏览器/RunTime 内核(渲染引擎) JavaScript 引擎
Chrome Blink(28~)Webkit(Chrome 27) V8
FireFox Gecko SpiderMonkey
Safari Webkit JavaScriptCore
Edge EdgeHTML Chakra(for JavaScript)
IE Trident Chakra(for JScript)
PhantomJS Webkit JavaScriptCore
Node.js - V8

这里面大家最耳熟能详的可能就是 Webkit 内核了,其中的 Blink 其实就是 Webkit 的一个分支,也就是说它也是基于 Webkit 的,所以本章也就以 Webkit 为例,来看看浏览器的渲染机制到底是一个什么样的过程,不过在此之前,我们先来简单的了解一下浏览器的主要组成部分和它包含的一些主要进程,这有助于我们下面更好的理解浏览器当中的渲染机制

Node.js 中的事件轮询机制

本文主要借助 libuv 来简单的了解一下 Node.js 中的事件轮询机制相关概念,注意与浏览器中的 EventLoop 区分开来,下面我们就先来看看什么是 libuv

关于浏览器中的 EventLoop 详细可见 JavaScript 并发模型

遍历对象的几种方法

JavaScript 当中遍历对象方式有许多种,比如常见的 for-inObject.keys(obj) 等等,但是对于它们之间的区别一直有些模糊,所以今天就抽些时间将 JavaScript 当中涉及到遍历对象的 API 整体的梳理了一遍,看看它们的使用方式和之间的区别,先来小小的总结一下,大致有以下几种

Angular 属性绑定 [] 和 {{}} 的差异

当我们在 Angular 中给属性绑定一个变量的时候,主要有下面三种绑定方式

  • [property] = "variable"
  • property = ""
  • [attr.property] = "xxx"

下面我们就看看它们之间的区别

rxjs 中的高阶操作符

在之前的文章当中我们简单的介绍了 什么是 rxjs 以及一些常见的操作符使用场景,那么在本章当中,我们就在之前的基础上来看看另外几个比较常用的高阶操作符,关于更多的操作符的详细内容可以参见官方文档 rxjs

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×