天辰的救贖(JS)第二章(變數製造器)

天辰dreamer發表於2018-12-26

閱讀須知

這是一篇小說風格的關於JS的文章,網上已經有大量的優秀技術文章和書籍,寫系列的主要目的只是想嘗試用不同的方式來分享一些關於JS的知識,或者可以說只是單純地為了好玩,文筆不怎麼好,希望大家多多包容,不定時更新。

image

“令牌?什麼令牌,拿出來我看看。”[・_・?]

聽見天辰這麼說,烏雲突然有了一絲好奇,想著天辰剛來這裡能有什麼東西。

天辰從懷裡掏出了昨晚你在草地上撿到的令牌,遞給了烏雲,烏雲接過令牌,拿在手中翻來覆去仔細看了幾遍。

“你運氣還挺不錯,如果我沒看錯的話,你這個令牌應該是某個人故意留在這的,裡面放了一些他留下的祕密。”

“某人故意留下的?會是之前出現在這救贖之地的人嗎?”

天辰也沒想到,自己剛來到這裡就能撿到其他人留下的東西。

“這個我暫時也不清楚,或許是之前在這通過試煉的人離開之前留下的,也可能是一些能力超凡的人通過一些手段繞過封印故意放在這裡的,專門為了讓你這種初來乍到的新手撿到,這個世界經常有人在各種地方找到各種奇怪的東西,有的人也撿到類似你的這種令牌,裡面留有某個人的感悟,有的人會撿到一些神奇的寶物,也有的人直接撿到了一大堆JS幣,然後一夜暴富,你這個令牌看著好像是關於一些感悟的,總之,你能撿到這個令牌也算是和它有緣。( ̄~ ̄;)”

烏雲看著天辰, 心裡想著也算便宜這小子了,雖然這世界是有一些奇怪的人喜歡幹各種奇怪的事,不過也不是隨便就能遇見的。

“哦,那你說我這個令牌裡面可能蘊含了一些留下之人的感悟,這些感悟是指那些關於這世界的元素或規則的感悟嗎?就像你剛才給我說的那些。”

“這個倒不一定,某些感悟的確是關於某個元素或者某個技能的,它的目的通常是幫你掌握某個特殊或者複雜的技能,另外一些感悟比起關注某個具體技能,更多的則是一些巨集觀一點的經驗之談,這種東西通常就得看獲得之人的悟性了,有一些人領悟後能力突飛猛進,一日千里,而有的人獲得後卻一點用也沒有,這種感悟,更多的是偏向於關於思維的感悟,而還有一些則更加虛無縹緲,是關於心靈的感悟。”

“關於心靈的領悟?[・_・?]”

“沒錯,你剛來這世界,可能還體會不到這種領悟的重要性,這麼說吧,在這個世界的各個角落,每天都有許許多多的人來到不同的救贖之地,即使面對著相同的規則,相同的技能,但是之間的差別能夠非常大,有的人很快就能打破封印走出救贖之地,甚至在外面的世界也能縱橫天下,大放異彩,成為一方之主。有的人花了比較多的時間才走出去,但是憑藉努力,也能成為風雲人物,而還有一些人,卻連這救贖之地都出不去,即使你告訴他們只需要領悟一些基礎的,並不複雜的規則,就能打破封印,去看一看外面的世界,但是他們就是做不到,他們就是輕易地放棄,所以,有時候,與其說是這世界的規則阻礙了他們,不如說是他們自己的心靈,對於這樣的人,一些適當的心靈感悟或許比什麼都重要。┐(´∇`)┌”

“嗯,明白了,反正我天辰是不會輕易放棄的,那麼話說回來,我要怎麼才能開啟這令牌,獲得裡面的祕密?聽你說了怎麼多我挺激動的,想馬上就開啟看看裡面是什麼! (o゚▽゚)o ”

聽見烏雲的解釋後,天辰突然對這令牌有了濃厚的興趣。

“不知道。”(・ω・`ll) 烏雲淡淡地回答到。

“"▔□▔)不知道?!你說了這麼多結果連這令牌怎麼開啟都不知道?”

“本來就不知道,這些東西的開啟方式只有留下的人才知道,你先留著,說不定以後合適的時候它自己就開啟了。”

天辰體會到了從希望到失望的感覺,不過看著烏雲的樣子也不像是說謊,只好先就不管令牌的事了。

“ヽ(ー_ー)ノ看你說得那麼認真,還以為你知道如何開啟這令牌呢,算了,你還是接著給我講關於走出這救贖之地的知識吧。。。”

“嗯,剛才已經給你介紹了這世界的5個基礎元素,你應該已經簡單瞭解了它們,現在我們接著往下說吧,光有了元素還不行,你得知道如何去收集元素,也就是說把它們放哪裡,這樣以後你想用的時候就可以直接拿出來用。”

“~(〃'▽'〃)”

“我們現在這世界還在不斷進化,現在還處於從ES5階段往ES6,ES7等不斷髮展的過程中,這裡我就先給你介紹一種比較傳統的道具,叫做var變數製造器,顧名思義,它的作用就是幫助你製造變數,有了變數,你就可以把那幾種基礎元素放進去了。”

烏雲從懷裡拿出來一個小石板,這個小石板有著彩色背景,上面刻了一些奇怪的符號和文字,並且有一些凹槽在上面。

image

變數製造器→

“你現在看見的這個小石板就是var變數製造器,你可以看見上面已經有一些寫好的文字,還有2個空著的凹槽,因為現在才剛開始教你,所以我幫你完成了一些內容,你需要做的就只是在這兩個空著的凹槽內寫下正確的內容,左邊這個方框放置你需要生成的變數的名稱,而右邊這個方框裡放置你希望儲存在這個變數裡面的元素,放置完成後,它會負責給你生成一個變數,這個變數裡面就是你放進去的元素,以後你想使用這個元素時,就可以通過這個變數來使用它。”

“看起來很簡單啊,就左邊的凹槽放變數名,右邊的凹槽放元素嘛,對了,變數名稱是什麼名稱都可以嗎?”

“當然不行了,變數名稱是有規則的,只能由字母,數字,下劃線_和美元符號$組成,而且不能以數字開頭。”

“哦( • ̀ω•́ )✧,為什麼不能以數字開頭?”

“因為這個世界的基礎規則就是這樣,剛來這時就給你說了,你來到這裡,就必須遵守一些這個世界的基礎規則,這個就是你需要遵守的規則。”

“那為什麼又能以字母美元符號和下劃線開頭。。。?”

“ヽ(`⌒´)ノ它總得有個開頭的東西吧!要不然難道以你天辰的名字開頭?都說了這是基礎規則!算了,看你這樣子,估計給你說了你也一時半會兒記不住,這樣吧,這個小黑探測器給你,這隻小貓叫做小黑,如果你什麼時候想檢視合法的變數符號了,把手放在它上面,它會告訴你。”

烏雲拿出的口中所說的小黑探測器是一個黑色的小燈,在它的底座旁刻著一隻小黑貓,天辰試著把手掌放在了小黑上面,頂部小燈便開始漸漸發光,而被這光芒照射到的面前的虛空中則出現了幾行小字,天辰試著又把手掌放在小黑上面,光芒又慢慢消失掉了,看來小黑應該就是開關了。

image

小黑探測器→

“開啟,關掉,開啟,關掉,開啟,關掉。。。” 天辰對著小黑探測器玩的不亦樂乎,就和沒見過世面的鄉巴佬一樣,面具下的烏雲則露出了鄙視的眼神。

“行了行了,別玩了,瞧瞧你這出息。”

“哇,有這麼好玩的這種道具你幹嘛不早些拿出來( • ̀ω•́ )。”

“你以為這個道具是隨隨便便就有的嗎?我現在也只剩下這一個了,能給你就不錯了。”

“最後一個都給我了,那你對我還挺好嘛,我一定會好好使用它的,放心吧。 ”

“你知道就好。”

“那還是來接著說變數的事吧,是不是隻要我在這基本規則之內就可以隨意取我喜歡的名字?”

“理論上來說是這樣,不過你取的變數名最好符合你所放元素的特性,比如你的變數名叫name,那麼裡面最好對應的就是一個名字,如果叫age,裡面最好放置的就是年齡,不要亂放一些奇怪的東西。”

“也就是說我不能僅僅滿足於取一個符合規則的變數名,還要努力取一個好的變數名,對嗎?”

“沒錯,就是這樣!你這人看著比較笨沒想到領悟力還不錯,那現在你就先試著製造一些變數吧,製造好了給我看看。”

烏雲對天辰的回答還算滿意,想著這次總算遇見個聰明一點的人了。

天辰接過了烏雲給他的var變數製造器,開始照著上面的規則開始創造變數。

image

變數製造器1號→

“好了,烏雲你幫我看看有沒有什麼問題。”

只花幾分鐘的時間,天辰就完成了一些變數,然後把生成好的變數給了烏雲。

“我看一看,你這幾個變數使用了數字,字母,下劃線和美元符號,幾種合法的規則都用上了,沒有以數字開頭的變數,變數名也符合它所放的元素特性,完全OK,最重要的是確實還挺符合你現在的情況( ̄▽ ̄)~*,除了這個is_awesome有點違心以外。”

“。。。 ̄へ ̄這是什麼話。。。”

看著天辰製造的變數,烏雲嘴角微微上揚,露出了一絲笑意,不過由於帶著面具天辰沒有看到,雖然心裡對天辰比較滿意,但烏雲並不想表現出來。

“你現在已經知道如何用var變數製造器製造一個變數了,你也應該還記得開始我給你說的,這世界是由一些基礎元素和規則組成的對吧?”

“嗯,這和var變數製造器有什麼關係嗎?”

“當然有關係,你使用var變數製造器的時候,你看見我已經幫你在上面寫好了一些內容,你只需要在兩個方框內放入變數名和元素就行了,實際上,我寫的這些內容,加上你最後填寫上去的內容,就是生成變數的規則,瞭解了它,你就不用再通過變數製造器來創造變數,現在我就把變數的生成規則告訴你。”

“好,那你快說!~(〃'▽'〃)”

“第一種規則是簡單賦值,也就是你剛才使用的方式,總共由5個部分組成,分別是var關鍵字,變數名稱,賦值運算子=,需要放進變數的元素,以及最後結尾的分號;,這也就是你剛才的變數製造器所用的規則。”

image

這是使用簡單賦值規則把多個元素放進多個變數的製造器,你剛才已經使用過了:

image

變數製造器1號→

“第二種規則是批量賦值,如果你覺得使用多次簡單賦值規則比較麻煩的話,你可以選擇使用這種規則一次性將多個元素放進多個變數裡,這個是這種規則的變數製造器,製造完成後,你可以一次性獲得多個變數。”

image

變數製造器2號→

“第三種規則是連續賦值,這種規則適用於你希望一次性給多個變數放進相同的元素時,這是第三種規則的變數製造器,完成後你會獲得2個變數,name1,name2,他們裡面都是相同的元素。”

image

變數製造器3號→

“這就是製造變數的3種規則,知道了這幾種規則,配合元素符石,就算不用變數製造器你也可以製造變數了,你只需心中想著這些規則,然後用手對著你面前的虛空畫出這些規則就行了,你試試看。”

天辰你按照烏雲所說,一邊心中默唸著規則,一邊用右手在面前的虛空中開始畫,他感覺到似乎有一股力量從身體裡通過右手傳遞到面前的虛空中,虛空一陣扭曲,接著第一個變數便憑空出現在了天辰手中,待到幾個變數都出現後,面前的虛空則開始慢慢又恢復了平靜,彷彿什麼都沒有發生過。

image

var練習→

“烏雲,你看,我第一次嘗試就成功了!厲不厲害?” 製造變數的過程比想象中更容易,天辰沒有費什麼勁就成功了。

“本來就很簡單,要是一次不成功的話就只能說明你太笨,現在你還有什麼想問的沒有?”

“嗯,這樣看來,第一種規則是一個變數對應一個元素,第二種規則是多個變數對應多個元素,第三種規則是多個變數對應一個元素,那麼為什麼沒有一個變數對應多個元素呢?”

“你傻啊,如果一個變數能夠對應多個不同的元素,那麼你使用時怎麼知道這個變數裡面是什麼元素?”

“哦,好像是這樣。。。”

“嗯,現在你已經知道了3種生成變數的規則,接下來我們來看看幾種特殊情況吧,別分心,注意聽。

看著天辰東張西望的樣子,烏雲提醒了一下。

“第一種情況是假如你在創造變數時只指定了變數名稱,但是沒有向這個變數放任何元素,這種情況下,如果你試圖使用這個變數,會得到什麼元素?。 ”

“這種情況啊,首先它應該不會是數字吧,字串和布林值應該也不對,那麼就剩下null和undefined了,null代表著空元素,而這裡我們沒有向這個變數放任何元素,那麼我想應該是undefined,對吧?”

天辰微微思考了一下回答道。

“沒錯,就是undefined,如果你創造變數時候不給它放任何元素,那麼它裡面就是undefined元素。”

“看來好像只要我創造一個變數,就會有一個元素在裡面,如果我指定了某個元素,它就會是我指定的這個元素,如果我不放,就會有一個undefined元素,那麼如果我有一個已經創造好的變數,我能改變它裡面的元素嗎?”

“廢話,變數不能變還叫變數幹嘛,你想改變一個變數裡面的元素時,你可以直接用一個新元素替換掉舊的元素,像這樣。”

var name = '天辰dreamer';
var name = '烏雲dreamer';
複製程式碼

“當然,你也可以使用剛才給你說的規則,重新制造一個相同名稱的變數,放上新的元素來達到相同的目的。”

var name = '天辰dreamer';
name = '烏雲dreamer';
複製程式碼

“~(〃'▽'〃)我明白了,也不是很難嘛,你早給我說這規則不就完了,還整什麼var變數製造器這些華而不實的東西。”

天辰帶著一絲不屑,半開玩笑地說道。

“剛瞭解點東西就飛上天了?我還不是擔心你這人比較笨,專門為你製作的,想著好一步一步給你提示,結果你還不領情,那以後遇見不懂的別問我!”

“別啊,烏雲我就開個玩笑,你可別往心裡去,我還指望你幫助我早些離開這裡,去看看外面的世界呢。”

看著烏雲似乎有點生氣,天辰趕忙一臉嚴肅地說道。

“好吧,現在你已經知道了這個世界的幾種基礎元素,也知道了如何用變數來收集它們,雖然這些都是很簡單基礎的內容,但是你也一定要認真對待它們,當你使用元素時,就按照元素自身的規則來,比如字串需要放在成對的單雙引號中,而數字布林等元素就不需要用引號包裹等,而當你想要生成變數時,你也要按照生成變數的規則來,並且不要漏掉規則中的任何一個部分,即使是一個看似無關緊要的符號,要細心一點,也要有耐心,知道了沒?”

“嗯,我知道的,不積跬步,無以至千里嘛。”

“看不出來你還挺有覺悟的嘛,還能說出這樣的話。ヾ(๑╹◡╹)ノ"”

“嘿嘿,光說誰還不會。”

看著天辰又有要開始膨脹的傾向,烏雲接著說道:

“對了,還有一個關於變數名稱的重要規則差點給忘記了,變數名除了剛才說的規則以外,其實也是還有一小部分名稱你是不能取的,這些名稱通常都有特殊的意義,也叫做關鍵字,比如你創造變數時使用的var一樣,因為var有特殊的作用,所以你的變數名就不能取var這個名字,其他關鍵字也一樣,除了關鍵字以外,還有一些叫做保留字的名字,保留字的意思就是現在不是關鍵字,但是以後可能會進化成具有特殊作用的關鍵字,所以這些名稱你都得避開。”

烏雲從懷裡掏出了一塊樹葉一樣的道具,摸著軟軟的,只有一個手掌那麼大,正反面上都刻有文字。

“這個叫做KR樹葉,上面記錄了關鍵字(keywords)和保留字(reserved keywords),拿去吧,好好看看,以後給變數取名的時候注意點。”

天辰把小樹葉拿了過來,發現它正面是一堆關鍵字,反面是一堆保留字,天辰靈機一動,試著把“天辰”兩個字刻了上去,想看看是什麼情況,結果卻發現很快就消失了,抬頭就看見烏雲用一個看白痴的表情看著他,嘴角還帶著一絲若有若無的嘲諷。

“又是一個剛來到這裡就想改變世界規則的傻瓜。” 烏雲心裡想。

image

image

KR樹葉→

// 這樣的方式是不會產生一個叫做var的變數的,而且據說可能會引起世界崩潰。
var var = '元素你隨便選,能放進去算我輸。';

// 這樣是可以獲得一個叫做float的變數,前提是float以後不會有它自己的想法!
var float = '哼,還好你只是現在遇見我!'

複製程式碼

天辰重新低下頭開始從頭到尾認真地看小卡片上的關鍵字和保留字。

(ง •_•)ง

______________。

(ง •_•)ง

___________________。

(ง •_•)ง

_______________________________。

“我靠,這麼多的關鍵字和保留字,難道要全部記下來?。。。”

“๑乛◡乛๑”剛不是還挺自信的嘛,怎麼,現在突然又要害怕了?”

“(╬◣д◢)誰說我害怕了!記就記,你烏雲能記住,我天辰怎麼就不能記住了。 ”

正當天辰準備開始去記住這些關鍵字和保留字時,那個他和烏雲都不知道怎麼開啟的神祕令牌突然間振動了起來。。。

未完待續。。。

——————我是分割線————————

本章JavaScript內容總結:

變數的作用:

可以把基礎值放在變數之中,以後想使用時可以通過這個變數找到放在裡面的值。

變數(variable)的命名規則:

1、變數的名稱只能由字母,數字,下劃線和美元符號組成,並且不能以數字開頭。

2、變數的名稱應該避開關鍵字保留字。

3、變數的名稱應該符合它所代表的值的意義。

變數(variable)的賦值規則:

變數的賦值規則由5個小部分組成,

關鍵字var

變數名稱

賦值運算子=

需要放進變數的值

代表結尾的分號;

var varibleName = '字串元素';
複製程式碼

因為變數名稱在賦值運算子的左邊,所以變數名稱也可以叫做左值(left operand),而需要放進變數的值因為在賦值運算子右邊,所以也可以叫做右值(right operand)

三種變數(variable)賦值規則:

1、簡單賦值,一次給單個變數單個值

var name = '天辰dreamer';
var age = 22;
複製程式碼

2、批量賦值,一次性給多個變數多個值

var name = '天辰dreamer',
    age = 22,
    sex = '男';
複製程式碼

3、連續賦值,一次性給多個變數單個值

 var name3 = name2 = name1 = '天辰dreamer';
複製程式碼

一些你可能關心的問題:

1、費這麼大勁寫這麼點技術內容你是不是很無聊?

是的。。。

2、這麼大個人了能不能正經點?

不能。。。

3、為什麼從這麼基礎的內容寫,更新還比較慢,感覺沒多大用,能不能寫點稍微有技術含量的內容?

我開始也在想這個問題,直接寫點有趣的東西吧,那些剛入門的人可能就不太明白怎麼回事,從基礎寫吧,基礎好入行久的人肯定又會覺得無聊。

“喂,等等!天辰,你是不是多慮了,根本就沒人關心你的文章好吧!”

image

4、我還是不太懂,為什麼建議變數名稱要符合所放的元素特性?能不能舉個例子?

想象一下,你正在下載一個叫做日語學習資料的檔案,檔案很大,網速很慢,為了下載它你還專門充了會員,但是!下載完了你開啟後卻發現裡面居然是葫蘆娃!

image

2019-1-11更新內容: 由第一人稱改為了第三人稱,修改了標題,修改了部分句子的敘述方式,替換掉了原來的圖片,增加了線上版本的小玩具連結。

相關文章