关于编程,我最喜欢的就是解决问题.我不相信有谁天生具有解决问题的能力.这是一种通过反复锻炼而建立并维持的能力.像任何练习一样,有一套指导方针可以帮助你更有效地提高解决问题的能力.我将介绍5个最重要的软件设计原则,这些原则指导了我的解决问题的过程,并向您展示如何应用这些原则来解决实际问题. 1. Keep It Simple 如果您有任何需要从这篇文章中获得的信息,那就是"保持简单"的原则.这个原则通常被称为KISS,它代表"Keep it simple,stupid"…
众所周知,JavaScript 的执行环境是单线程的,所谓的单线程就是一次只能完成一个任务,其任务的调度方式就是排队,这就和火车站洗手间门口的等待一样,前面的那个人没有搞定,你就只能站在后面排队等着.在事件队列中加一个延时,这样的问题便可以得到缓解. A: 嘿,哥们儿,快点! B: 我要三分钟,你先等着,完了叫你~ A: 好的,记得叫我啊~ 你(C)也等着吧,完了叫你~ C: 嗯! ... 告诉后面排队的人一个准确的时间,这样后面的人就可以利用这段时间去干点别的事情,而不是所有的人都排在队列后抱…
在上篇文章中,我们讲到了,当一段代码被执行时,JavaScript 引擎先会对其进行编译,并创建执行上下文.但是并没有明确说明到底什么样的代码才算符合规范. 那么接下来我们就来明确下,哪些情况下代码才算是“一段”代码,才会在执行之前就进行编译并创建执行上下文.一般说来,有这么三种情况: 1. 当 JavaScript 执行全局代码的时候,会编译全局代码并创建全局执行上下文,而且在整个页面的生存周期内,全局执行上下文只有一份. 2. 当调用一个函数的时候,函数体内的代码会被编译,并创建函数执行上下…
概述 Silverlight 2 Beta 1版本发布了,无论从Runtime还是Tools都给我们带来了很多的惊喜,如支持框架语言Visual Basic, Visual C#, IronRuby, Ironpython,对JSON.Web Service.WCF以及Sockets的支持等一系列新的特性.<一步一步学Silverlight 2系列>文章将从Silverlight 2基础知识.数据与通信.自定义控件.动画.图形图像等几个方面带您快速进入Silverlight 2开发. Silv…
讲解完宏观视角下的浏览器后,从这篇文章开始,我们就进入下一个新的模块了,这里我会对 JavaScript 执行原理做深入介绍. 今天在该模块的第一篇文章,我们主要讲解执行上下文相关的内容.那为什么先讲执行上下文呢?它这么重要吗?可以这么说,只有理解了 JavaScrip 的执行上下文,你才能更好地理解 JavaScript 语言本身,比如变量提升.作用域和闭包等.不仅如此,理解执行上下文和调用栈的概念还能助你成为一名更合格的前端开发者. 本文主要是从 JavaScript 的顺序执行讲起,然后一…
编程练习 使用javascript代码写出一个函数:实现传入两个整数后弹出较大的整数. 任务 第一步: 编写代码完成一个函数的定义吧. 第二步: 我们来补充函数体中的控制语句,完成函数功能吧. 提示:再想一想,两个整数比较有三种情况,大于,等于或小于,所以我们需要控制语句判断(if...else if). 第三步:  写好的函数,我们就可以任意调用函数了.通过函数调用实现两组数值中,返回较大值吧. <!DOCTYPE HTML> <html > <head> <m…
本文作者Angus Croll是Twitter工程师.JavaScript迷.文学迷,并且非常喜欢作家海明威.他在梦中"梦见"一些名人编写JavaScript代码,不同的作家呈现出各种编程风格,大家不妨一起来品尝下. 下面是对原文的摘译. 最近,我做了一个梦,我请海明威和其他四位文学名人替我编写JavaScript代码,一个函数返回一个给定长度的斐波纳契数列.有趣地是,他们每个人都以不同的方式完成了这一题,并且都做的很好——只是我想说,每个解决方案工作起来都好比广告(即使是Andre…
许多Javascript引擎都是为了快速运行大型的JavaScript程序而特别设 计的,例如Google的V8引擎(Chrome浏览器,Node均使用该引擎).在开发过程中,如果你关心你程序的内存和性能的话,你应该了解并意识 到,在你的代码背后,浏览器的JavaScript引擎中到底发生了什么事情. 不论的V8,SpiderMonkey(Firefox).Carakan(Opera).Chakra(IE)或者其它类型的引擎.了解引擎背后 的一些运行机制可以帮助你更好的优化你的应用程序.这并不是…
本文是我翻译<JavaScript Concurrency>书籍的第二章 JavaScript运行模型,该书主要以Promises.Generator.Web workers等技术来讲解JavaScript并发编程方面的实践. 完整书籍翻译地址:https://github.com/yzsunlei/javascript_concurrency_translation .由于能力有限,肯定存在翻译不清楚甚至翻译错误的地方,欢迎朋友们提issue指出,感谢. 本书第一章我们探讨了JavaScri…
本书介绍 JavaScript专业开发人员必须具备的一个技能是能够编写可测试的代码.不管是创建新应用程序,还是重写遗留代码,本书都将向你展示如何为客户端和服务器编写和维护可测试的JavaScript代码. 从减少代码复杂性的方法,到单元测试.代码覆盖率.调试.以及自动化,您将全面学到如何编写让你和你同事能够轻松修复和维护的JavaScript代码.测试JavaScript代码是一个复杂的过程.本书将在很大程度上帮你简化该过程. 目标读者 本书主要目标受众是那些想成为JavaScript专业开发人…