【转载】改变JavaScript的三个点: spread运算符与rest参数
当在函数调用中通过arguments
对象访问参数时,我总是感觉很不爽。它那硬编码的名字使得要想在内层函数(它拥有自己的arguments
)中访问外层函数的arguments
变得很困难。更糟糕的是它是一个类数组对象。这意味着你不能直接在它身上调用类似.map()
或是.forEach()
这样的方法。
当在函数调用中通过arguments
对象访问参数时,我总是感觉很不爽。它那硬编码的名字使得要想在内层函数(它拥有自己的arguments
)中访问外层函数的arguments
变得很困难。更糟糕的是它是一个类数组对象。这意味着你不能直接在它身上调用类似.map()
或是.forEach()
这样的方法。
JavaScript中的递增和递减运算符都是一元操作符,言外之意就是只能操作一个值的操作符。递增和递减操作符直接借鉴自C语言,各有两种版本:前置型(递增++i
,递减--i
)和后置型(递增i++
,递减i--
)。在JavaScript中,递增(递减)的前置和后置运算符对于初学者都非常容易混淆。我就属于这一类型,这次下定决心把这两者的使用和不同之处了解清楚。如果你和我一样,不仿一起来了解一二。
大家知道,==
是JavaScript中比较复杂的一个运算符。它的运算规则奇怪,容易让人犯错,从而成为JavaScript中“最糟糕的特性”之一。在仔细阅读了ECMAScript规范的基础上,我画了一张图,我想通过它你会彻底地搞清楚关于==
的一切。同时,我也试图通过此文向大家证明==
并不是那么糟糕的东西,它很容易掌握,甚至看起来很合理。
@manxisuo的《通过一张简单的图,让你彻底地、永久地搞懂JS的==
运算》一文中详细的阐述了JavaScript中的==
运算符。其实在JavaScript中还有一个另外一个运算符===
。那么这两者有何不一样呢?这篇文章就一起来看看JavaScript中==
和===
有何不同。
从上一篇文章中我们快速的了解了Web Animation API能做什么,也能使用Web Animation API制作类似CSS3 Animation实现的动效。但到目前为止,也仅仅就如此,并没有看到Web Animation API比CSS Animation有任何优势之处。那在这篇文章中,咱们来看看Web Animation API和CSS Animation明显性的区别。
前段时间无聊或有聊地做了几个移动端的HTML5游戏。放在不同的移动端平台上进行测试后有了诡异的发现,有些手机的动画会“快”一点,有些手机的动画会“慢”一点,有些慢得还不是一两点。通过查找资料发现,基于帧的算法(Frame-based)来实现动画会导致不同帧率的平台体验不一致,而基于时间(Time-based)的动画算法可以很好地改良这种情况,让不同帧率的情况下都能达到较为统一的速度上的体验。本文介绍的就是基于帧动画算法和基于时间动画算法的差异,以及对基于时间算法的改良。
由于 React 加持了虚拟 DOM 等诸多特性,所以在 React 上实现常规的动画效果有一些特别之处。本文不会深入探讨 React 对动画的处理逻辑,只会简单地演示如何在 React 创建动画效果,因为我也没有做过线上的 React 动画实例,谨以此文抛砖引玉,算是最基础的入门了解。
自从几年前入手智能型手机之后,对于行动装置上特有的陀螺仪 ( 三轴 ) 侦测与感应器就蛮感兴趣的,而相关的应用除了在一些典型的 APP 里头很常见之外 ( 指南针、水平仪、星空定位...等 ),在游戏里头更是屡见不鲜 ( 赛车、跑酷、飞行、滚球...等 ),但撇除 APP 不谈,过去在网页里头要使用陀螺仪的三轴感测,几乎是不可能,应该是说沒这个必要,因为在智能行动装置尚未普及的年代,谁会搬台电脑转来转去呢?
如果你也喜欢萌萌的百度熊,如果你也喜欢SVG,如果你也喜欢动画,那一起动手来写写这个Demo。看看如何使用SVG写一个会动的,萌萌的百度熊
JavaScript提供定时执行代码的功能,叫做定时器(timer),主要由setTimeout()
和setInterval()
这两个函数来完成。它们向任务队列添加定时任务。初始接触它的人都觉得好简单,实际上真的如此么?这里记载下,一路对其使用姿势变迁的历程。