2018
10-13
10-13
JavaScript和JSON创建者对JavaScript未来的展望
近期在伦敦召开的FullStack大会上,BrendanEich和DouglasCrockford分别做演讲探讨了JavaScript的未来。Eich是JavaScript的创建者;Crockford是JSON的创建者,也是《JavaScript语言精粹》(“JavaScript:TheGoodParts”)一书的作者。Eich的大会演讲主要聚焦于一些需迭代改进的语言特性。Crockford引导听众聚焦于JavaScript软件工程的下一步发展,他称之为一种全球分布的、安全的异步编程模式。Crockford指出,包...
继续阅读 >
在过去的几个月,我发现我的拉取请求中存在四个完全相同的JavaScript错误。于是我写了这篇文章,总结了如何在JavaScript中正确使用地使用Array的方法!用Array.includes代替Array.indexOf“如果你要在数组中查找元素,请使用Array.indexOf”。我记得在学习JavaScript的时候,在教材中读到这样的一句话。毫无疑问,这句话是真的!MDN文档写道,Array.indexOf将“返回第一次出现给定元素的索引”。...
在众多语言中,JavaScript已经占有重要的一席之地,利用JavaScript我们可以做很多事情,应用广泛。在web应用项目中,需要大量JavaScript的代码,将来也会越来越多。但是由于JavaScript是一个作为解释执行的语言,而且它的单线程机制,决定了性能问题是JavaScript的弱点,也是开发者在写JavaScript的时候需注意的一个问题。因为经常会遇到Web2.0应用性能欠佳的问题,主因就是JavaScript性能不足,导致浏览器...
本文就所有JavaScript引擎中常见的一些关键基础内容进行了介绍——这不仅仅局限于V8引擎。作为一名JavaScript开发者,深入了解JavaScript引擎是如何工作的将有助于你了解自己所写代码的性能特征。在前一篇文章中,我们讨论了JavaScript引擎是如何通过Shapes和InlineCaches来优化对象与数组的访问的。本文将介绍优化流程中的权衡与取舍,并对引擎在优化原型属性访问方面的工作进行介绍。原文JavaScript...
一、概述JavaScript语言采用的是单线程模型,也就是说,所有任务只能在一个线程上完成,一次只能做一件事。前面的任务没做完,后面的任务只能等着。随着电脑计算能力的增强,尤其是多核CPU的出现,单线程带来很大的不便,无法充分发挥计算机的计算能力。WebWorker的作用,就是为JavaScript创造多线程环境,允许主线程创建Worker线程,将一些任务分配给后者运行。在主线程运行的同时,Worker线程在后台运...
一、问题的由来学懂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...
WebWorkers提供了一种在浏览器单线程执行外运行JS代码的方式。单线程处理了包括页面内容展示,通过键盘、鼠标点击和其他装置的用户交互,以及对于AJAX请求响应的一些请求。事件处理和AJAX请求是异步发生的,可以作为一种通用浏览器展示代码路径之外的运行代码的方式,但是它们仍然在这一单线程内运行,并且必须很快完成。否则,浏览器中的交互会失去作用。WebWorkers允许在一个单独的线程运行JS代码,...
1.前言这段时间,金三银四,很多人面试,很多人分享面试题。在前段时间,我也临时担任面试官,为了大概了解面试者的水平,我也写了一份题目,面试了几个前端开发者。在这段时间里面,我在学,在写设计模式的一些知识,想不到的设计模式的这些知识,就是面试题里面,频繁让人掉坑的考点。所以,今天就总结一下,那些让人掉坑的考点。2.面向对象编程关于面向对象和面向过程,个人觉得这两者不是绝对独立的,而是相互...
作为对社区开发者的回馈,我们从我们的数据库里选出了10大来自数千个项目的JavaScript错误。我们将会给出产生这些错误的根源,以及如何避免再发生这些错误。如果能够避免这些错误,就可以成为更好的开发者。数据才是王道,我们通过收集和分析大量数据才选出了这10大JavaScript错误。我们收集每一个项目中出现的错误,并统计每一个错误发生的次数。我们根据错误代码的指纹(fingerprint)对它们进行分组,也就是说,如果第二...
前言因为工作中经常用到这些方法,所有便把这些方法进行了总结。JavaScript1.type类型判断isString (o) { //是否字符串 return Object.prototype.toString.call(o).slice(8, -1) === 'String' } isNumber (o) { //是否数字 return Object.prototy...
前言见解有限,如有描述不当之处,请帮忙及时指出,如有错误,会及时修正。———-超长文+多图预警,需要花费不少时间。———-如果看完本文后,还对进程线程傻傻分不清,不清楚浏览器多进程、浏览器内核多线程、JS单线程、JS运行机制的区别。那么请回复我,一定是我写的还不够清晰,我来改。。。———-正文开始———-最近发现有不少介绍JS单线程运行机制的文章,但是发现很多都仅仅是介绍某一部分的知识...
1.debugger除了console.log,debugger是我们最喜欢、快速且肮脏的调试工具。执行代码后,Chrome会在执行时自动停止。你甚至可以把它封装成条件,只在需要时才运行。if(thisThing){debugger;}2.用表格显示对象有时,有一组复杂的对象要查看。可以通过console.log查看并滚动浏览,亦或者使用console.table展开,更容易看到正在处理的内容!varanimals=[{animal:'Horse',name:'Henry',ag...