> 原文出處:https://github.com/getify/You-Dont-Know-JS/blob/1ed-zh-CN/async%20&%20performance/README.md#you-dont-know-js-async--performance
# 序
多年以前,我的雇主十分信任我來讓我進行面試。如果我們要找某些擁有JavaScript技能的人,我的問卷的第一行是...實際上這不是真的,我首先會問問應聘者是否需要上個衛生間或者喝些飲料,因為平靜是很重要的,但是一旦我確信可以和應聘者進行流暢的交流,我就要開始考察這位應聘者是否懂得JavaScript,還是只懂得jQuery。
并不是jQuery有什么錯。它使你不必真的懂得JavaScript就可以做很多事,這是一個特性而不是一個bug。但是如果這份工作需要關于JavaScript性能和可維護性上的高級技能,你就需要一些懂得jQuery這樣的庫是如何組裝在一起的人。你需要能夠像他們一樣操控JavaScript的核心。
如果我想對某人的核心JavaScript技能取得一些了解,我最感興趣就是他們如何使用閉包(你已經讀過這個系列的那本書了,對吧?),以及如何最大限度地利用異步性,而這就是這本書帶給我們的。
對于初學者,你將被帶領著學習回調,它是異步編程的面包和黃油。當然,面包和黃油并不能做一頓特別令人滿意的午餐,但是下一課滿是非常美味的promise!
如果你不懂得promise,現在是學習的時候了。現在在JavaScript和DOM中,Promise是提供異步返回值的官方方法。所有未來的異步DOM API都將使用它們,而且有許多已經這樣做了,所以做好準備!在本次寫作時,Promise已經在大多數主流瀏覽器中獲得了支持,IE也很快會支持。一旦你完成了這一課,我希望你離開教室去學習下一刻,Generator。
Generator不聲不響地溜進了Chrome和Firefox的穩定版本,因為,老實說,它們的復雜程度要比有趣程度大多了。或者說,直到我看到它們與promise組合起來之前我都是這么認為的。在此,它們成為了增強可讀性和可維護性的重要工具。
至于甜點,好吧,我不會把驚喜放壞了,準備好凝視JavaScript的未來吧!許多特性在并發性和異步性上給了你越來越多的控制權。
好吧,我不會繼續擋著你享受這本書了,讓好戲開始吧!如果你已經在讀這篇序之前度過了這本書的一些部分,給你10點異步加分!你值得擁有!
--: Jake Archibald
[jakearchibald.com](http://jakearchibald.com/),?[@jaffathecake](http://twitter.com/jaffathecake)
Google Chrome 技術推廣部