今天(已經好些天前了...),羣裏面(JS前端開發跳板6羣【81501322】)有個羣友問了這樣一個問題。前端
如題:在下面畫線的地方填任何代碼,使得最終輸出 'hello world',至少寫五個不一樣思路的方案 異步
看到這個題,個人心裏是崩潰的,這什麼鬼?函數
不一會就看到有大神給出了幾個答案.3d
本身的思想也會被開竅的。code
細心的童鞋有沒有看到問題??console.log
的結果並非題目給出的 'hello world' ,而是 'hello' 'world'。(固然,以我當時懵逼人臉神是發現不了的)cdn
隨後,一位大神給出了大案。blog
解析:經過自執行函數直接輸出'hello world',而後拋出一個異常,程序報錯,後面的代碼再也不解析執行,雖然報錯了,可是很好的達到想要的結果隊列
看到這裏,個人思路就來了(羣衆的力量是偉大的,特別是一羣有相同愛好的,熱心幫助的羣衆【詞窮了,該多讀點書了】)ip
細心研究發現,這道題目能夠從語句執行順序、重寫 console.log
的這個方法來下手(目前就這兩種了)開發
解析:經過重寫console.log方法,來達到效果。可能有些童鞋有點懵逼了,這是啥東西,不要急,你要知道的是這個知識點《逗號運算符》
解析:經過定義一個隊列,重寫
console.log
方法向隊列中添加元素而後異步輸出。這裏須要注意的是if
中是一個自執行表達式,若是不顯式return
一個值的話,它的值是undefined
解析:經過添加其餘的
if
語句來改變輸出結果
解析:經過改寫
console.log
函數來確保輸出值永遠是固定值
看了答案後再看題目,感受也不太難,這些語法都可以寫的出來,可是剛看到題目的瞬間仍是無從下手,仍是要多練多加深印象