自古,三百六十行,每一行入行的時候都有個儀式。現現在編程這個行當,也約定俗成出了一個入行儀式,就是選你將要使用的編程語言,寫段代碼輸出
hello world!
,這片文章講的就是這麼個事——
寫個函數輸出hello world,請真的不要以爲很簡單。
軟件開發這個行業裏面,有這麼一句挺牛逼的話:「人生苦短,我用Python」,雖然Python我會用,也確實發自心裏地以爲,在言簡意賅這條路上,它配得上這句話。但今天我就想用JavaScript
向python
叫叫板,比比更「短」。問題只有一個:請使用JavaScript
語言編寫一個函數,返回hello world!
python
可是我有些個附加條件,嘿嘿嘿
我先來作個示範,先拋開這條的附加條件,實現起來那就太簡單了編程
function f(){ return "hello world!" }
OK, 而後在控制檯用console.log(f())
打印就能夠看到hello world!
了。數組
當加上這個附加條件,傳統的函數定義方式顯然行不通了。
固然如今,ES6已經至關普及,能想到箭頭函數應在情理之中。其次就是一行字符串如何寫成多行,這也應該是編程基礎,不繞彎子了,直接上代碼:瀏覽器
f=( )=> "h\ el\ lo\ w\ or\ ld\ !"
涉及的JavaScript知識點:箭頭函數
,字符串換行
安全
每行兩個字符,你是否是連函數都不會定義了,反正箭頭函數是行不通了
總行數不超過30行,有點殘忍,算了40行也行吧
若是隻出題目和貼答案,對於各位看官來講,這也只能算是奇技淫巧。因此本着閱有所得得出發點,我仍是簡略剖析下個人思路,但願能給你些啓發:app
\
的存在,所要返回的hello world!
字符串仍是能夠輸出的,只不過多些幾行的事,問題不大。.
符號外,還能夠用數組的方式,便可以在數組符號[]
中,寫方法名的字符串進行方法的調用。可以使用的方法,僅供參考:''.trim()
,''.slice()
,[].join()
function()
什麼的,都顯得太過無力了。不說啥了,看代碼吧編程語言
f= '' [ '\ t\ r\ i\ m' ][ '\ b\ i\ n\ d' ]` H\ e\ l\ l\ o\ ,\ \ w\ o\ r\ l\ d! `
涉及的JavaScript知識點:字符串換行
,trim()
, join()
, bind()
, 模板字符串
編輯器
激不激動,刺不刺激。
其實還不夠,我是個有時間,就想把事情作到極致的人
握緊方向盤,繫好安全帶,咱們繼續
有沒有世界觀快要崩塌了,是否是開始以爲,本身歷來沒學過真的JavaScript。
有沒有不只函數不會建立使用了,沒有字符串換行符,是否是連字符串都不會寫了。
好了,言歸正傳,函數
若是你想挑戰一下本身,那麼就請先不要繼續往下閱讀,暫時移步以下你熟悉的在線編輯器,嘗試一番:.net
或者直接在瀏覽器的Console
中嘗試也能夠。
前
方
高
能
開
始
炫
技
[ , j , , o , , i , , n , , b , , d , , s , , p , , l , , t ] = ` j o i n b d s p l t ` f = [ ] [ j + o + i + n ] [ b + i + n + d ] ( ` H e l l o , w o r l d ! ` [ s + p + l + i + t ] ` ` , [ ] + [ ] )
在問題2時,已較爲詳細的分析了思路,問題3問題難度雖然加大,但思路基本不變,這裏爲了便於理解,僅彙總一下涉及到的知識點:
模板字符串
,能夠自由換行,但換行處會有一個換行符\n
。解構賦值
,字符串能夠當作是單個字符組成的數組,因爲數組的定義能夠換行,經過將模板字符串解構賦值給數組,即可得到初始化爲單個字符的變量。join()
,splite()
。bind()
,同時可複習與apply()
和call()
的區別和聯繫。[]+[]
表示空字符''
其實我就一個想法,看過以後不要以爲這是篇講述什麼奇技淫巧的文章,假若能幫你回顧複習了些JavaScript的基礎知識,便就善莫大焉了。