201812-13 2018年值得期待11个Javascript动画库 在浏览网页寻找一个整洁的Javascript动画库时,我发现很多“recommended”的动画库一段时间都没有维护。经过一些研究,我收集了11个最好的库,在你的应用程序中使用。我还添加了一些,主要是非维护的,有用的库。使用UI组件时,您还可以使用Bit轻松地在不同应用程序之间共享这些组件,而不是复制粘贴它们,从不同项目进行更改并与其他项目协作。Bit-使用代码组件共享和构建_Bit可帮助您在项目和应用程序之间... 继续阅读 >
201812-07 谷歌的JavaScript编写风格中 13点值得我们注意的! 对于那些还不熟悉JavaScript的编写风格的人,谷歌提供了编写JavaScript的编写风格指南,谷歌风格指南其中列出了编写干净、可理解代码的最佳风格实践。对于编写有效的JavaScript来说,这些并不是硬性的、快速的规则,而只是在源文件中维护一致的、吸引人的样式选择的规则。这对于JavaScript来说尤其有趣,它是一种灵活且多变的语言,允许多种风格的选择。谷歌和Airbnb有两个最受欢迎的编写风格指南。如果我的工作... 继续阅读 >
201811-16 JavaScript 箭头函数:适用与不适用场景 现代JavaScript中最引人注目的功能之一是引入了箭头函数,用 => 来标识。这种函数有两大优点–非常简洁的语法,和更直观的作用域和 this的绑定。这些优点有时导致箭头函数比其他形式的函数声明更受欢迎。例如,受欢迎的 airbnbeslint配置 会在您创建匿名函数时强制使用JavaScript箭头函数。然而,就像工程中的任何东西一样,箭头函数优点很明显,同时也带来了一些负面的东西。使用他们的时候... 继续阅读 >
201810-13 JavaScript和JSON创建者对JavaScript未来的展望 近期在伦敦召开的FullStack大会上,BrendanEich和DouglasCrockford分别做演讲探讨了JavaScript的未来。Eich是JavaScript的创建者;Crockford是JSON的创建者,也是《JavaScript语言精粹》(“JavaScript:TheGoodParts”)一书的作者。Eich的大会演讲主要聚焦于一些需迭代改进的语言特性。Crockford引导听众聚焦于JavaScript软件工程的下一步发展,他称之为一种全球分布的、安全的异步编程模式。Crockford指出,包... 继续阅读 >
201809-13 JavaScript中Array方法的正确打开方式 在过去的几个月,我发现我的拉取请求中存在四个完全相同的JavaScript错误。于是我写了这篇文章,总结了如何在JavaScript中正确使用地使用Array的方法!用Array.includes代替Array.indexOf“如果你要在数组中查找元素,请使用Array.indexOf”。我记得在学习JavaScript的时候,在教材中读到这样的一句话。毫无疑问,这句话是真的!MDN文档写道,Array.indexOf将“返回第一次出现给定元素的索引”。... 继续阅读 >
201809-13 JavaScript性能优化小窍门实例汇总 在众多语言中,JavaScript已经占有重要的一席之地,利用JavaScript我们可以做很多事情,应用广泛。在web应用项目中,需要大量JavaScript的代码,将来也会越来越多。但是由于JavaScript是一个作为解释执行的语言,而且它的单线程机制,决定了性能问题是JavaScript的弱点,也是开发者在写JavaScript的时候需注意的一个问题。因为经常会遇到Web2.0应用性能欠佳的问题,主因就是JavaScript性能不足,导致浏览器... 继续阅读 >
201808-28 JavaScript 引擎基础:原型优化 本文就所有JavaScript引擎中常见的一些关键基础内容进行了介绍——这不仅仅局限于V8引擎。作为一名JavaScript开发者,深入了解JavaScript引擎是如何工作的将有助于你了解自己所写代码的性能特征。在前一篇文章中,我们讨论了JavaScript引擎是如何通过Shapes和InlineCaches来优化对象与数组的访问的。本文将介绍优化流程中的权衡与取舍,并对引擎在优化原型属性访问方面的工作进行介绍。原文JavaScript... 继续阅读 >
201808-21 JS传参技巧总结 1.隐式创建html标签<inputtype="hidden"name="tc_id"value="{{tc_id}}">这种方法一般配合ajax,上面的value使用了模板引擎2.window['data']window['name']="thewindowobject";3.使用localStorage,cookie等存储window.localStorage.setItem("name","xiaoyueyue");window.localStorage.getItem("name")特点:1、localStorage是持久存储,不主动删除一直存在sessionStorage是临时存储,关闭浏览... 继续阅读 >
201808-08 javascript引擎工作原理 1.什么是JavaScript解析引擎?简单地说,JavaScript解析引擎就是能够“读懂”JavaScript代码,并准确地给出代码运行结果的一段程序。比方说,当你写了 vara=1+1; 这样一段代码,JavaScript引擎做的事情就是看懂(解析)你这段代码,并且将a的值变为2。学过编译原理的人都知道,对于静态语言来说(如Java、C++、C),处理上述这些事情的叫编译器(Compiler),相应地对于JavaScript这样的... 继续阅读 >
201807-19 WebGL入门与进阶1 改革开发40年以来,世界日新月异,无论从生活到精神上都有了颠覆性的变化,曾经教授还是教书的,砖家还叫专家,太阳还不叫日,菊花还是一种花,老王还没那么多,Web还只需要做IE,XHR还没出生的时候,怎么能想到现在浏览器会提供如此丰富多彩的多媒体生活,无论是音频、视频、以及各种漂亮的页面都在让用户更好的拥抱着互联网,当二维页面无法满足用户之后,会出现什么样的内容来继续推进Web进展呢,没错,就是3D,浏览器中看到... 继续阅读 >
201807-10 Web Worker 使用教程 一、概述JavaScript语言采用的是单线程模型,也就是说,所有任务只能在一个线程上完成,一次只能做一件事。前面的任务没做完,后面的任务只能等着。随着电脑计算能力的增强,尤其是多核CPU的出现,单线程带来很大的不便,无法充分发挥计算机的计算能力。WebWorker的作用,就是为JavaScript创造多线程环境,允许主线程创建Worker线程,将一些任务分配给后者运行。在主线程运行的同时,Worker线程在后台运... 继续阅读 >
201806-20 JavaScript 的 this 原理 一、问题的由来学懂JavaScript语言,一个标志就是理解下面两种写法,可能有不一样的结果。varobj={foo:function(){}};varfoo=obj.foo;//写法一obj.foo()//写法二foo()上面代码中,虽然obj.foo和foo指向同一个函数,但是执行结果可能不一样。请看下面的例子。varobj={foo:function(){console.log(this.bar)},bar:1};varfoo=obj.foo;varbar=2;obj.foo()//1foo()//2这种差异的原因,就在于... 继续阅读 >
201806-20 深入理解js的同步与异步 JavaScript语言的一大特点就是单线程,也就是说,同一个时间只能做一件事。那么,为什么JavaScript不能有多个线程呢?这样能提高效率啊。JavaScript的单线程,与它的用途有关。作为浏览器脚本语言,JavaScript的主要用途是与用户互动,以及操作DOM。这决定了它只能是单线程,否则会带来很复杂的同步问题。比如,假定JavaScript同时有两个线程,一个线程在某个DOM节点上添加内容,另一个线程删除了这个节点,这时浏览器... 继续阅读 >
201806-20 JavaScript 的 this 原理 一、问题的由来学懂JavaScript语言,一个标志就是理解下面两种写法,可能有不一样的结果。varobj={foo:function(){}};varfoo=obj.foo;//写法一obj.foo()//写法二foo()上面代码中,虽然obj.foo和foo指向同一个函数,但是执行结果可能不一样。请看下面的例子。varobj={foo:function(){console.log(this.bar)},bar:1};varfoo=obj.foo;varbar=2;obj.foo()//1foo()//2... 继续阅读 >
201805-16 [译]深入ES6之箭头函数 箭头一族缺少的家庭成员在JavaScript出现以来,箭头(Arrow)就一直是其语法的一部分。一般来说,JavaScript教程的第一篇就会讲如何在HTML中插入箭头括号来作为注释,这会阻止不支持JS的浏览器错误的将你的JS代码作为文字展现出来,比如这个:<scriptlanguage="javascript"><!--document.bgColor="brown";//red//--></script>老旧的浏览器只会看到两个不支持的tag以及一个注释,而现代... 继续阅读 >
201804-30 数组的遍历你都会用了,那Promise版本的呢 这里指的遍历方法包括:map、reduce、reduceRight、forEach、filter、some、every。因为最近要进行了一些数据汇总,node版本已经是8.11.1了,所以直接写了个async/await的脚本。但是在对数组进行一些遍历操作时,发现有些遍历方法对Promise的反馈并不是我们想要的结果。当然,有些严格来讲并不能算是遍历,比如说some,every这些的。但确实,这些都会根据我们数组的元素来进行多次的调用传入的回调。这些方法都是... 继续阅读 >