国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

你真的會寫hello world的么?

tianhang / 1372人閱讀

摘要:現(xiàn)如今編程這個行當,也約定俗成出了一個入行儀式,就是選你將要使用的編程語言,寫段代碼輸出,這片文章講的就是這么個事寫個函數(shù)輸出,請真的不要覺得很簡單。但每行兩個字符的限制,是把函數(shù)創(chuàng)建的生門堵死了。

自古,三百六十行,每一行入行的時候都有個儀式。現(xiàn)如今編程這個行當,也約定俗成出了一個入行儀式,就是選你將要使用的編程語言,寫段代碼輸出hello world!,這片文章講的就是這么個事——寫個函數(shù)輸出hello world,請真的不要覺得很簡單。
先立一個flag

軟件開發(fā)這個行業(yè)里面,有這么一句挺牛逼的話:“人生苦短,我用Python”,雖然Python我會用,也確實發(fā)自內(nèi)心地覺得,在言簡意賅這條路上,它配得上這句話。但今天我就想用JavaScriptpython叫叫板,比比更“”。問題只有一個:請使用JavaScript語言編寫一個函數(shù),返回hello world!

但是我有些個附加條件,嘿嘿嘿
題目 1. 每行代碼不超過3個字符,總行數(shù)不超過9行

我先來做個示范,先拋開這條的附加條件,實現(xiàn)起來那就太簡單了

function f(){
    return "hello world!"
}

OK, 然后在控制臺用console.log(f())打印就可以看到hello world!了。

當加上這個附加條件,傳統(tǒng)的函數(shù)定義方式顯然行不通了。

當然現(xiàn)在,ES6已經(jīng)相當普及,能想到箭頭函數(shù)應在情理之中。其次就是一行字符串如何寫成多行,這也應該是編程基礎,不繞彎子了,直接上代碼:

f=(
)=>
"h
el
lo
 w
or
ld
!"

涉及的JavaScript知識點:箭頭函數(shù)字符串換行

題目 2. 每行代碼不超過2個字符,總行數(shù)不超過30行
每行兩個字符,你是不是連函數(shù)都不會定義了,反正箭頭函數(shù)是行不通了
總行數(shù)不超過30行,有點殘忍,算了40行也行吧

如果只出題目和貼答案,對于各位看官來說,這也只能算是奇技淫巧。所以本著閱有所得得出發(fā)點,我還是簡略剖析下我的思路,希望能給你些啟發(fā):

在每行兩個字符的限時下,考慮到字符串換行符的存在,所要返回的hello world!字符串還是可以輸出的,只不過多些幾行的事,問題不大。

基于第一步中的方法,在不考慮總行數(shù)限制的情況下,其實什么字符串都是可以分拆成多行寫的。但每行兩個字符的限制,是把函數(shù)創(chuàng)建的生門堵死了。

想到JavaScript中一起皆對象,不同類型的對象都有些許內(nèi)置的屬性和方法,與此同時,最精妙絕倫的是,函數(shù)的調(diào)用除了用.符號外,還可以用數(shù)組的方式,即可以在數(shù)組符號[]中,寫方法名的字符串進行方法的調(diào)用。可使用的方法,僅供參考:"".trim()"".slice()[].join()

如此我們便可用些內(nèi)置的函數(shù),來代替創(chuàng)建新函數(shù)。可想而知,在每行兩個字符的限制下,無論是箭頭函數(shù),還是function()什么的,都顯得太過無力了。

你以為到此為止,問題就解決了么?,你會立馬遇到另一個問題——每行兩個字符限制下,調(diào)用函數(shù)時怎么傳參

我只能說,ES6中有個好東西——帶標簽的模板字符串

不說啥了,看代碼吧

f=
""
[
"
t
r
i
m"
][
"
b
i
n
d"
]`
H
e
l
l
o
,
 
w
o
r
l
d!
`

涉及的JavaScript知識點:字符串換行trim()join()bind()模板字符串

激不激動,刺不刺激。
其實還不夠,我是個有時間,就想把事情做到極致的人
握緊方向盤,系好安全帶,我們繼續(xù)
題目 3. 每行代碼不超過1個字符,總行數(shù)不超過120行
有沒有世界觀快要崩塌了,是不是開始覺得,自己從來沒學過真的JavaScript。
有沒有不僅函數(shù)不會創(chuàng)建使用了,沒有字符串換行符,是不是連字符串都不會寫了。

好了,言歸正傳,

如果你想挑戰(zhàn)一下自己,那么就請先不要繼續(xù)往下閱讀,暫時移步如下你熟悉的在線編輯器,嘗試一番:

CodePen

JsBin

jsfiddle

JsRun

RunJs

CodingGround

或者直接在瀏覽器的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問題難度雖然加大,但思路基本不變,這里為了便于理解,僅匯總一下涉及到的知識點:

模板字符串,可以自由換行,但換行處會有一個換行符

解構(gòu)賦值,字符串可以看成是單個字符組成的數(shù)組,由于數(shù)組的定義可以換行,通過將模板字符串解構(gòu)賦值給數(shù)組,便可獲得初始化為單個字符的變量。

一些字符串和數(shù)組的內(nèi)置方法:join()splite()

改變函數(shù)執(zhí)行上下文的方法:bind(),同時可復習與apply()call()的區(qū)別和聯(lián)系。

這或許算是一條奇技淫巧:[]+[]表示空字符""

其實我就一個想法,看過之后不要覺得這是篇講述什么奇技淫巧的文章,倘若能幫你回顧復習了些JavaScript的基礎知識,便就善莫大焉了。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/95799.html

相關(guān)文章

  • javascript 函數(shù)式編程思想

    摘要:今天這篇文章主要介紹函數(shù)式編程的思想。函數(shù)式編程通過最小化變化使得代碼更易理解。在函數(shù)式編程里面,組合是一個非常非常非常重要的思想。可以看到函數(shù)式編程在開發(fā)中具有聲明模式。而函數(shù)式編程旨在盡可能的提高代碼的無狀態(tài)性和不變性。 最開始接觸函數(shù)式編程的時候是在小米工作的時候,那個時候看老大以前寫的代碼各種 compose,然后一些 ramda 的一些工具函數(shù),看著很吃力,然后極力吐槽函數(shù)式...

    YPHP 評論0 收藏0
  • 《C語言入門》真的會打印Hello World嗎,花式打印Hello World

    摘要:而再加上后,則會打印一行清除一行,是一個系統(tǒng)命令,如此便產(chǎn)生了更酷炫的效果。完整代碼如下,大家有興趣可自行嘗試感謝大家的觀看,歡迎點贊評論,有關(guān)必回,祝大家萬事如意。 #includeint main(){ printf(Hello World!); return 0;} 想必上面這一段代...

    weij 評論0 收藏0
  • 【Java】第一章 HelloWorld

    摘要:下載,并解壓環(huán)境變量配置右鍵我的電腦屬性高級環(huán)境變量系統(tǒng)變量注意是下面的系統(tǒng)變量,不是上面的用戶變量新建變量名,變量值修改變量,在最前面加上注意是首字母大寫,不要改成,后面要有分號注意系統(tǒng)變量上面的用戶變量里,不要有這兩個,如果有應 1 JDK (1) 下載,并解壓 (2) 環(huán)境變量配置 右鍵我的電腦->屬性->高級->環(huán)境變量->系統(tǒng)變量注意:是下面的系統(tǒng)變量,不是上面的用戶變量...

    Ryan_Li 評論0 收藏0
  • extjs4學習之配置

    摘要:最近在學習發(fā)現(xiàn)一篇文章中有錯誤,網(wǎng)上很多人都是直接復制粘貼那篇文章,結(jié)果每個人注釋中都是寫的正確的答案,我也是醉了,這些猿么復制粘貼代碼都不帶檢查的么,為啥都變得很浮躁了呢。 最近在學習extjs4發(fā)現(xiàn)一篇文章中有錯誤,網(wǎng)上很多人都是直接復制粘貼那篇文章,結(jié)果每個人注釋中都是寫的正確的答案,我也是醉了,這些猿么復制粘貼代碼都不帶檢查的么,為啥都變得很浮躁了呢。 現(xiàn)提供可以調(diào)試的代碼: ...

    crossoverJie 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<