被誉为神器的requestAnimationFrame
与setTimeout
和setInterval
不同,requestAnimationFrame
不需要设置时间间隔。这有什么好处呢?为什么requestAnimationFrame
被称为神器呢?本文将详细介绍HTML5新增的定时器requestAnimationFrame
。
与setTimeout
和setInterval
不同,requestAnimationFrame
不需要设置时间间隔。这有什么好处呢?为什么requestAnimationFrame
被称为神器呢?本文将详细介绍HTML5新增的定时器requestAnimationFrame
。
在英语中,Loop
这个词指的是由弯曲的曲线所产生的形状。类似的概念,Loop
这个词已经被用于编程中。如果你看到下图,你就会清楚的知道指令的流动是如何在一个循环的动作中不断重复的。在编程中,循环的概念并不是什么新概念,它们常常在编码时使用。虽然不是的语言其语法不同,但基本概念是相同的,根据需要重复相同的代码块。JavaScript增加了循环类型(包括各种类型的循环),并使其与它们的工作更加舒适和高效。在本文中,我们将学习JavaScript中所有可用的循环。
前段时间在学习Vue的双向绑定原理及实现时,简单的知道Object.defineProperty()
有很大的用处。这个方法会直接在一个对象上定义一个新属性,或者修改一个对象现有的属性,并返回这个对象。感觉他非常强大,但并不知道其中原委。回过头来重新补一下这方面的基础知识。
ES5和ES6致力于为开发者提供JS已有却不可调用的功能。例如在ES5出现以前,JS环境中的对象包含许多不可枚举和不可写的属性,但开发者不能定义自己的不可枚举或不可写属性,于是ES5引入了Object.defineProperty()
方法来支持开发者去做JS引擎早就可以实现的事情。ES6添加了一些内建对象,赋予开发者更多访问JS引擎的能力。代理(Proxy
)是一种可以拦截并改变底层JS引擎操作的包装器,在新语言中通过它暴露内部运作的对象,从而让开发者可以创建内建的对象。本文将详细介绍代理(Proxy
)和反射(Reflection
)。
本人是Java背景,许多年前刚接触JavaScript时有点怪怪的,因为它没有 getters
和 setters
。随着时间的推移,我开始喜欢上这个缺失的特性,因为相比Java大量的 getter
和 setter
,它让代码更简洁。
学习每一门语言,一般都是从其数据结构开始,JavaScript也是一样,而JavaScript的数据结构中对象(Object
)是最基础也是使用最频繁的概念和语法,坊间有言,JavaScript中,一切皆对象,基本可以描述对象在JavaScript中的地位,而且JavaScript中对象的强大也使其地位名副其实,本篇介绍JavaScript对象属性描述器接口及其在数据视图绑定方向的实践,然后对Vue.js的响应式原理进行剖析。
HTML5 History API是HTML5提供对history
栈中内容的操作。DOM window
对象通过history
对象提供了对浏览器历史的访问。它暴露了很多有用的方法和属性,允许你在用户浏览历史中向前和向后跳转。另外也提供了一些很有意思的API。在这篇文章中简单的来了解history
相关的知识。
在很多场景下我们需要通过JavaScript来获取视口或DOM元素的大小、位置以及滚动高度。最常见的一个效果,导航吸顶的一个效果。那么今天就来学习这方面相关的知识。
路由,引导、指路之意。譬如我们熟知的路由器,蹦跶在网络层的数据包转发设备,在网络中也是扮演着指路明灯的角色,肩负着将数据包正确导向目的地址的重任。前端路由也借用了这个词,但是承担的工作全然不同,它是服务于客户端浏览器的指路人。所谓的前端路由,拥有这样一种能力:客户端浏览器可以不依赖服务端,根据不同的URL渲染不同的视图页面。
经过《前端路由一探》的学习,简单的了解了Web路由方面的知识。另外在学习HTML5 History API时,知道可以通过这个API来实现Web页面的跳转,而且浏览器不需要刷新。那么今天我们来看如何使用JavaScript写Web路由。从网上找了两个示例,第一个是@KrasimirTsonev用100行代码写的一个示例,另一个是@Joakim Carlstein用20行代码写的一个示例。首先来看第一个示例。