天辰的救贖(JS)第四章(組合元素)

天辰dreamer發表於2019-03-19

閱讀須知

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

image

從外表看,胖虎的這個道具並沒有什麼特備之處,只是一塊晶瑩剔透,薄如蟬翼的水晶片,想起胖虎說的只要把這個道具貼在眼睛上就能使用,天辰便揉了揉右邊的眼睛,半信半疑,小心翼翼地把它貼在了眼球上面,貼上後,天辰先是感覺到一絲冰涼的融化的感覺,彷彿有什麼東西進入到了眼球裡邊,接著一個灰色的雷達狀的圖案出現了在了天辰的眼前,散發著一陣陣微弱的光芒,好像在掃描著什麼,同時,天辰的腦袋裡突然多出了一些神祕資訊。

image

天辰仔細看了看,發現這些內容好像是關於這個道具的描述,這些描述都是由一些基礎元素組成,類似字串或者布林元素,但是以一種天辰未見過的方式組合起來,不過根據一些字串元素的描述,天辰大概知道了這個道具是胖虎從貪玩聯盟帶出來的,叫做規則探測器,而它有個特殊作用,就是能看穿一些基礎道具的規則,這也應該就是胖虎說的能看穿烏雲面具的原因了。

“胖虎的規則探測器? 這傢伙也真是有點自戀,做個道具都要帶上自己的名字。”

天辰心裡嘀咕著,同時試著看了看周圍的小草和石頭。

image

image

“居然有這麼神奇的道具!”天辰環顧了下四周,發現無論是小草還是石頭,在探測器下都各自顯示出了一些資訊,天辰又看了看遠處的巨大的封印,想試著看能不能發現什麼祕密,結果發現在探測器面前只能看見一圈一圈的能量在封印中流動,更細節的東西彷彿被一層迷霧給擋住了,什麼也看不清楚。

“嗯~~,看來應該是封印的規則太複雜了,胖虎的這個探測器探測不出來,那還是接著去找烏雲吧。”天辰心裡想著。

天辰重新回到了山洞,發現烏雲並不在山洞裡,應該是回到自己的房間去了,天辰走到烏雲門前,拍了拍烏雲門上的鈴鐺。

image

“烏雲,烏雲,我有事想找你,你在裡面沒有?喂,烏雲。”

天辰對著烏雲的房間喊道。

“天辰你叫那麼大聲幹什麼,有病啊?我剛回來打算休息一會兒,就聽見你在這裡喊。”

幾個呼吸的時間,烏雲不耐煩的聲音便傳了出來,帶著一些小的腳步聲。

“現在就等烏雲來開門了,希望胖虎說的能看穿面具是真的!”天辰心裡突然有點莫名的小激動。

“吱~” 就在這時,房門終於開啟了,天辰探出腦袋習慣性的往裡面一瞧,而烏雲剛準備走出來,兩人突然來了個面對面,眼神也正好接觸在了一起,烏雲臉上依舊帶著面具,不過這時,眼前的探測器上幾道紅光一閃而過,和開始的小草石頭一樣,烏雲面具的屬性也顯示了出來:

image

“成了!果然也能看到面具的屬性,不過胖虎說可以看穿面具,現在怎麼還是隻能看到一些面具的資訊呢?”

雖然探測器探測出了面具的屬性,但是依然看不到面具下的烏雲什麼樣子。

“門已經開了,有什麼事,趕緊說吧。”

看著天辰什麼也不說的就盯著看,烏雲只好先開口說道。

“那個。。就是我想問問你一些關於變數的。。 ”

天辰突然也不知道該說啥,只能一邊想一邊試著繼續用探測器檢測烏雲的面具。

“咦~” 天辰突然注意到了一段文字

{
    // ...
    show: true,
    // ...
}
複製程式碼

“看起來這段文字像是用來控制面具是否顯示的開關,這裡有個true的屬性,而true是一個代表的布林元素,如果能換成false的話,是不是烏雲的面具就會隱藏了?”天辰正這麼想著的時候,一段話出現在了天辰的腦袋裡:

“探測出一個可以修改的屬性show,目前可以使用探測器在true和false之間進行修改,是否修改?消耗能量:無。”

出乎天辰的意料,探測器主動給出了一些提示。

“探測器不僅能探測屬性,居然還能修改?”

天辰選擇了把show屬性修改為false,只見面具上的true屬性閃了幾下,便突然變成了false,接著烏雲臉上的面具便開始逐漸變透明,最後便完全消失不見了,面具之下,呈現在天辰面前的是一個陌生的有著些許夢幻的面孔。

一雙清澈明亮的大眼睛,像火焰一樣的眉毛和頭髮,最神奇的則是烏雲的皮膚,像是一片藍色的夢幻星空,臉頰兩側各由一些零散的繁星點綴著,似乎看一眼就會被吸引進去,雖然天辰開始也暗自腦補過烏雲的外貌,但是真看見時還是被驚豔住了。(劇情需要圖片看最頂部圖片)

看著天辰依然突然目不轉睛地盯著自己看,也不說話,烏雲有點納悶。

“天辰你傻了啊?一直盯著我看做什麼,我臉上又沒花。”

“烏雲,你明明挺好看的,幹嘛一直帶著個面具?”

“什麼叫我明明挺好看,你又沒看過我,怎麼知道我長什。。。” 突然,烏雲好像意識到了什麼,伸出手摸了摸下自己的臉,發現面具居然消失了。

“!!!!??? 你這個混蛋!!!天辰!!!你做了什麼,為什麼我的面具突然自己消失掉了!”烏雲很憤怒地說道。

“額,那個我就只是好奇,然後試了下胖虎的道具,沒想到還真有用,你別生氣啊,我以為只是能看穿面具,我也不知道面具怎麼自己就消失了。。”

“我現在不想和你多說話,滾~”

“砰~”

看著天辰的目光還在上下掃來掃去,烏雲直接一腳給天辰踢飛了出去,天辰根本反應不過來,直接掉在了遠處的地上,烏雲馬上轉身並關上了門。

“我去,這女人也太暴力了,不就是看了下長相嘛,下這麼重的手。”

“哈哈哈哈哈,你小子果然去試了下我的探測器,怎麼樣,捱揍了吧?” 就在這時,胖虎的聲音突然傳了出來,和剛才一樣,胖虎從令牌裡跑了出來,站在天辰旁邊盯著他笑。

“你還好意思笑,你不是說那道具能看穿面具嗎?怎麼直接把面具給弄消失了,這下烏雲肯定很生我的氣了。” 天辰看著胖虎,這傢伙果然還是不正經的時間多,正經的時間少。

“我只是說能看穿面具,又沒說看穿了面具面具還在,你自己理解錯了還怪我,哈哈。”看見 天辰這個樣子,胖虎依舊笑得沒心沒肺。

“靠,你這人平時不會都是這個樣子吧?像你這麼不正經的人在這世界能混的走?”

“對啊,我就是這樣的一個人,不行啊?至於能不能在世界混的走,我這不是還混的好好的嘛,哈哈,什麼樣的性格,就過什麼樣的生活,你這個人就是太嚴肅了,這世界給的限制本來就夠多了,你看你這不一來也是困在這救贖之地,完了你還自己給自己新增限制,一點娛樂精神都沒有,不累啊?”

“切,你坑人就坑人吧,還找這麼冠冕堂皇的理由。”

天辰也是服了胖虎了,坑人就算了,還各種找理由。

“不過照胖虎你這麼說,你難道也是以前某一天突然就來到這個世界了?”

“對啊,和你一樣,一開始也是在一個救贖之地裡邊。”

“哦,那既然你在這世界也待了這麼久了,你知道這世界是怎麼一回事不?知道我們為什麼會出現在這裡不?”

“這我哪知道具體原因,不過我感覺這世界有點像一個遊戲。”

“一個遊戲?”

“沒錯,隨著我對這個世界的瞭解,我發現這世界有時候真的就像一個遊戲,有很多像你我一樣的玩家,有各種各樣的冒險,挑戰和機遇,不過雖然如此,這世界同時倒也充滿了各種有趣的事物,你得用心去發現它們,如果你足夠用心,你就能發現許多別人沒注意到的有趣的東西,我胖虎,包括我們聯盟,就喜歡去發現和製造有趣的東西。”

“照你這麼說,好像也有道理,反正我們都不知道這世界到底是什麼樣子對吧。”

“是啊,你雖然才來這世界不久,但是也要學會及時行樂,把握機會,試著多做一些有趣的事,就像剛才你剛才雖然被烏雲揍了一頓,但你總不想直到離開這地方了,連她什麼樣都不知道吧?我這都是在幫你,免得你以後後悔,放心,估計過了今晚她就不會怎麼生你氣了,畢竟她還要負責幫你走出這救贖之地呢。。。不過話說回來,我這道具怎麼樣?還是有很多用處吧?這個道具你好好留著,以後應該很多時候都用得上。”

“好吧,反正事情都發生了,不過你也不提前悄悄和我商量下,讓我一點準備都沒有的就被踢飛了。”

“哈哈,那是你自己實力弱,換我這體型,她能踢動我?”胖虎扭了扭他那龐大的身子,不屑地說道。

“。。。是是是,你這塊頭誰能踢動。。。不過你胖虎出來不會就是為了嘲笑下我吧,應該有什麼事想對我說吧?”

“你小子還是挺聰明的,沒錯,我想著既然探測器也都給你了,那就還是出來接著給你說點關於它的事,既然你已經使用過探測器了,那想必也知道這周圍的花花草草和石頭都有自己的規則屬性吧?。”

“嗯,我看過了,像我們腳下的小草或是石頭,在探測器下都會顯示出一些各自的屬性,裡面充滿了各種基礎元素,不過按照一種特殊的規則組合而成。”

“這是我接下來打算給你說的,你現在知道了各種基礎元素,布林元素,數字元素等,但是,正如你瞭解到的,它們都只是零散的簡單基礎元素,充滿在這個世界的各個角落,而我們身邊的各種物體,卻不會這麼簡單,即使是這株小草,也會有各種特性,它有自己的顏色,自己的描述,還有自己的物語,單獨來看,這些好像都是一些基礎元素,但是它們現在卻按照某種規則,構成了一個整體。”

“哦,也就是說,像身邊的小草或者石頭,它們內部都是由各種不同的基礎元素構成,只不過是以某種特殊方式收集組合起來,從而變成了現在這樣?”

“對,它們內部都是一些基礎元素。”

“這樣啊,我記得變數不是就可以收集元素嘛,幹嘛不直接用變數把一堆屬性收集起來,非得先組合一下呢?”

“是可以直接用變數收集基礎元素,但是這樣收集的,也只是一堆零散的基礎元素,這樣吧,天辰,我們先來試一下,就像你剛才看見的一些關於小草的屬性,比如小草的名稱,顏色等,按照你說的,我們來試著用變數來收集一下,像下面這樣。”

// 用不同變數收集
var name = '不知名的小草';    
var color = '藍色';
var description = '救贖之地裡不知名的藍色小草,能夠很快的生長,暫時不知道有什麼作用,但是睡在上面挺舒服。';
var words = '我是一顆小草小草小草~~~';
複製程式碼

“這樣沒錯對吧?你可以看到,我們使用了4個變數來收集一些關於小草的屬性,分別是name,color,description和words,但是,這裡我們雖然把一些小草的相關屬性都收集起來了,不過如果光看幾個變數的話,我們並不知道它們之間有什麼關係,比如name可能是關於小草的,而color可能是其他物體比如石頭的color,你沒辦法確定這裡的color和name有什麼聯絡。”

“嗯,每個變數都是獨立的,單獨看的話確實不知道它們之間是有聯絡的。”

“對,那我們在這基礎上進一步,這次我們可以給一組有聯絡的屬性所放的變數取一些類似的名字,比如都加個統一的字首grass(小草),像這樣。”

// 用帶統一字首的不同變數分開收集
var grassName = '不知名的小草';    
var grassColor = '藍色';
var grassDescription = '救贖之地裡不知名的藍色小草,能夠很快的生長,暫時不知道有什麼作用,但是睡在上面挺舒服。';
var grassWords = '我是一顆小草小草小草~~~';
複製程式碼

“好了,這樣的話,每個變數都有了一個grass字首,現在如果我們看見這幾個變數在一起,我們可能會猜想他們都是用來描述小草grass的。”

“嗯,這樣比剛才的那種方式要好一些了,但我想了下,這樣的話我們是不是會需要很多的變數?或者說如果有其他小草的話,我們可能得更換另一個字首是吧?而且,我們最好還得把它們放在一塊兒,如果分散了,我們怎麼知道關於某顆小草的變數,到底有多少個呢,比如除了grassName,grassColor,可能還會有其他grassXXXX屬性,難道每次都把所有變數檢查一遍,看哪些擁有grass字首嘛?,而且,不管怎麼說,它們始終好像還是零散的元素,只不過看起來像是有聯絡的一堆變數。”

“對啊,你也意識到這個問題了,所以我們還是需要一種更好的方式,來把一堆相關的元素內容組合在一起,讓我們知道它們是有關係的,並且也能很方便的找到所有相關的元素,最重要的是,我們希望以一種方式把一些基礎元素真正組合成一個整體。”

“那我用探測器看見的就是一種更好的方式嘛?”

“嗯,你用探測器看見的是其中的一種方式,通過這種方式,我們就能夠把一堆零散的基礎元素,真正組合成一個大的整體。”

“哦,那它們要怎麼才能組合在一起?”

“和生成變數時用到的規則一樣,這世界也有組合元素的規則,只要你按照規則來,你就能把一堆基礎元素組合起來,接下來我就給你說下這種組合規則,就從剛才這株小草開始吧,你現在把探測器開著,我們一起來看看這株小草的內部情況。”

天辰和胖虎都戴上了一個探測器,然後開始一起盯著面前的小草發呆。。。

image

“好了,這是這一株小草的內部情況,你剛才已經看見過了,現在我們依次來看一下,首先你可以看見,整個元素,最外部是由一堆{}的大括號符號包括而成,這對{}符號, 就是這個元素內部和外部的分界處,所有和這個元素相關的屬性,都會被放在{}內部。”

// 外部
{
    // 小草的內部
}
複製程式碼

“嗯,是不是就好像我們的皮膚一樣,外面就是這世界,而內部就屬於我們自己。”

“和這差不多吧,外部現在我們先不管,我們接著來看{}符號的內部,你可以看見,它內部有許許多多屬性,比如name,color等,以及對於這屬性的描述,然後你仔細觀察一下就會發現,它們都是按照一定的規則排列組合的,我們先單獨拿一個name屬性來看看。”

{
    name: '不知名的小草',
}
複製程式碼

“你看,除了最外部的{}符號,這裡總共有4部分,首先是name這個屬性名稱,然後是:符號,:符號告訴我們這個屬性的名稱已經結束了,接下來是對於該屬性的描述或功能了,在這裡,我們可以看見name屬性的描述是'不知名的小草',是一個字串元素,這是很合理的,因為開始就說過,字串可以用來描述這世界,而這裡正好用來描述這株小草的name,然後在它之後,是一個,符號,這個符號標記著name屬性的結尾,後面的就是它的其他屬性了,一樣是重複的由這樣的4個部分組成。”

“哦,感覺和生成變數時候好像,都有一個名稱,一個描述,之間用一定的特殊符號分割開。”

“沒錯,按照這種規則,一個組合元素內部可以有很多的基礎元素組成,就和剛才的小草和大石頭一樣。”

{
    name: '不知名的小草',
    color: 'blue',
    words: '我是一顆小草小草小草~~~',   
    
    // ... 其他屬性
}
複製程式碼

“也就是說,這種規則就類似膠水一樣,把所有相關的基礎元素都收集到一塊,從而生成一個更大的組合元素對吧,比如這顆小草,本來它內部都是一些零散的基礎元素,但是被組合後,就變成了現在這樣。”

“對,就是這樣,那現在你知道了這種方式,你就先試著用這種方式創造一些新的東西出來吧。”

“我也可以試著創造?”

“當然,你先試試再說吧。”

“哦,好。”

天辰按照胖虎所說的規則,開始創造了起來:

image

image

image

“好了,還是很簡單,完全不費吹灰之力嘛。” 天辰看著手上的3顆顏色各異的小草,嘴上說著雖然輕鬆,但心裡還是暗自驚訝,按照胖虎所說的規則,居然真創造出了這世界的生物,雖然只是幾顆小草。

“我來看看,不錯,挺厲害啊。” 胖虎湊了過來,看了看然後誇獎道。

“哈哈,是挺神奇也挺好玩的,對了,那這種組合元素和那些基礎元素有什麼區別嘛?我們可以用變數來收集基礎元素,那麼變數也能收集這種組合元素不?”

“你自己不是知道怎麼生成變數嘛?你自己試著把基礎元素換成組合元素不就行了,看看能不能行。”

“哦,也對,那我試試看。

天辰按照開始的變數生成規則,開始製造變數,不過這次,他把右邊的基礎元素換成了剛才生成的組合元素。

var grass1 = {
    name: '天辰的小草1號',
    color: '白色',
    description: '天辰按照胖虎的規則創造的第一顆小草,除了好看好像沒什麼別的用途。',
    words: '我居然是被一個新手給創造出來的,好沒面子啊~!',    
};
複製程式碼

等天辰按照刻畫完對應的規則後,開始還是之前熟悉的一幕,面前的虛空中飄出了一個上面印著grass1的變數,不過接下來的過程則變得有些不一樣了,在用基礎元素生成變數時,基礎元素會直接被變數包裹住,進到變數的體內,而這時的組合元素小草則不一樣,天辰發現從它體內飄出了一個半透明的,看著像分身一樣的東西,然後是這個分身進入到了變數體內,而它自己,還是在原來的地方,並沒有進入到變數內部。

“咦,胖虎,這是什麼情況? 為什麼這個組合元素沒有像基礎元素一樣,被裝進變數裡呢?”

“想知道為什麼啊?因為。。。它不願意!”

“。。。。。。”

“真的,不信你看你這顆小草,讓我來問問它,看它願意被你裝進變數不。”

天辰只見胖虎從懷裡掏出了一個奇怪的大喇叭,對著腳邊的小草說道:

“嘿,小草,你願意讓我把你放進一個變數嗎?”

“靠,你還真問?它就一棵草能知道什麼。。。”

看著胖虎還真一本正經的問,天辰有點無語, 然而讓天辰沒有想到的事,胖虎剛說完,腳下的小草抖了抖,一道聲音便從大喇叭傳了出來:

“啊,裝進變數?不行不行!我這麼一顆可愛的小草,要是把我裝進變數那個黑屋子裡,不如死掉算了,不過。。。如果你真喜歡我的話,我們可以交個朋友,我給你一個我的映象分身,以後你可以通過它聯絡我,有什麼話也可以對我說。”

“好啊,那你給我一個你的映象分身吧,以後我們就是好朋友了!”

“好,我這就給你,你以後要好好珍惜它哦,要是弄丟了可能就找不到我了。”

和剛才類似的情況,只見從小草身體內飄出了一個白色的半透明的分身,胖虎接了過去,收進了袖子裡,順便和小草道了個別,然後收回了它的大喇叭,回頭對著目瞪口呆的天辰說道:

“看見了吧,別人不願意直接被你放進變數裡,但是可以給你它的映象分身,也就是你剛才看見的白色半透明的東西,通過它,你就可以聯絡上它原來的主人,而這個映象分身,倒是可以被你放進變數裡。”

“好吧。。。居然還能這樣玩。。。”

“那是,你才來這世界多久,看什麼都稀奇。行了,你已經認識了組合元素,知道了利用某些特定規則,我們也能生成新的組合元素,那現在你也算是踏出了認識這世界的一小步了,你看看你周圍,你腳下的石頭,小草,四周的牆壁,還有那遠處的封印,都是由各種各樣的基礎元素和某些規則組合合成的,甚至你有沒有想過,也許包括我們自己,在這個世界上,或許也是以某種特定方式被組合而成的,在我們體內,也是各種各樣的基礎元素。”

“咦,你胖虎不說還好,你這麼一說,我感覺搞不好可能還真是,我說怎麼每個來到這世界的人都想不起過去的事,也許我們本來就是被這世界創造出來的,根本就沒有之前的記憶。”

“是啊,真是個神祕又充滿挑戰的世界啊!”

“哈哈,胖虎你喜歡挑戰?”

“當然喜歡,有挑戰才刺激,你這種小白現在還體會不到完成挑戰後的那種成就感。”

“那也是成功後的事啊,不還有很多失敗的情況嘛?”

“這不是挺正常的,不會失敗的事還能叫挑戰?再說,這個對我來說不重要,我剛才都說了,這個世界可能就只是一場遊戲,在遊戲裡,有失敗這回事嘛?只有一次又一次的滿血復活,而我胖虎每次復活後都會比之前更胖,不對,是更強大。。。”

“好吧,希望我也能每次失敗後都滿血復活,但是我不想變得你這麼胖,哈哈哈。”

“你要真能像我這麼胖,也不會被別人一腳就踢飛了。”

“我就算寧願被人踢飛也不想像你這麼胖。。。”

“......”

和大多數時候一樣,快樂的時光總是短暫的,在胖虎和天辰聊得正開心時,天色也漸漸變晚了。。。

“好了,天辰,現在天色也挺晚了,那就下次再說吧,你好好整理下今天的內容,我就準備回去休息了。。”

“好,那你先去休息吧,我現在思緒還有點凌亂,我先靜一靜再說。”

“嗯,對了,你開始讓烏雲生氣了,你待會兒還是去哄哄她,明天你就換她繼續給你說接下來的內容,我就先不出來了。”

“我被揍了還要我去哄她啊?”

“這你就不懂了吧,女生就是要多哄,你聽我的,照著好聽的話一直說就完事了。”

天辰對胖虎有點無語,心裡想著弄成這樣也是你胖虎害的,完了現在又來說這些,早幹嘛去了,但是想著自己也確實有責任,所以天辰還是點了點頭。

“好吧好吧,那我待會兒去試試。”

“嗯,那我就先回去休息了。。”

“誒,等一下胖虎。。”

“又有什麼事?”

“也沒啥事,想給你說聲謝謝,謝謝你今天給我說這麼多,然後就是你那個大喇叭能不能。。。”

“就這事啊,沒事,以後就別這麼客氣了,先走了。”

“~~唰!”

還是沒等天辰說完話,胖虎便和上次一樣,變成一道光,回到了令牌裡。

“等下,那個大喇叭!能和小草對話的那個大喇叭能不能也給我玩玩!!。。。”

“。。。這胖虎,每次回去都這麼著急。。。算了,等下次吧。。。”

看見胖虎消失後,天辰原地躺了下來,一邊看著手裡的幾株小草,一邊腦海裡回憶著剛才的事。

“一堆基礎元素按照一定規則組合起來,就變成了更大更復雜的組合元素,如果按照這個規則,一堆組合元素再組合,又會是什麼呢?更大的組合元素?那又應該用什麼樣的規則來組合呢?還有胖虎的大喇叭到底是什麼東西,居然能和小草對話。。。”

未完待續。。。

本章JavaScript內容總結:

我們已經知道了JavaScript的世界中,有一些最基本的基礎元素,也叫做原始值(primitive value),比如布林元素,字串元素等,這些基礎元素是Javascript世界中最基本的物質。

基礎元素:

true // 代表真的布林元素

'不忘初心,方得始終。' // 一段字串元素組成的句子

520 // 一個不知道什麼意思的數字元素

null // 你可以把它看做空元素。

undefined // 你可以這樣想,如果一個元素不是其他任何元素,那麼它就會是undefined元素!
複製程式碼

也知道了我們可以利用一種叫做變數的道具收集各種基礎元素:

// 把一個字串放進變數裡
var aStringElement = '我是一個到處流浪的字串元素。。。';

// 把一個數字元素放進變數裡
var aNumberElement = 1;

// 把一個布林元素放進變數裡
var aBooleanElement = true;

// 把一個null元素放進變數裡
var aNullElement = null;

// 沒錯,undefined也可以被放進變數裡!雖然你通常不會放置它進去。
var aUndefinedElement = undefined;
複製程式碼

還知道了我們可以利用一些叫做操作符的道具對基礎元素進行操作:

// 一個剛上一年級同學說這樣的操作沒問題!
1 + 1 // 2

// 除了加法,減法自然也不在話下!double kill!
1 - 1 // 0

// 好吧,他居然也學會了九九乘法表! triple kill!
9 * 9 // 81

// 一個叫天辰的字串和一個叫dreamer的字串不小心撞在了一個
// + 操作符上,然後變成了天辰dreamer!
'天辰' + 'dreamer' // '天辰dreamer'

// 烏雲不小心也撞上了!
'烏雲' + 'dreamer' // '烏雲dreamer'

// 出於某些未知的意外,最後烏雲dreamer和天辰dreamer也撞在了一起。
'天辰dreamer' + '烏雲dreamer' // '天辰dreamer烏雲dreamer'

// 同樣撞上的,還有一個最近在練習分身術的小夥伴。

'胖虎dreamer' + '胖虎dreamer' + '胖虎dreamer' + '胖虎dreamer' +'胖虎dreamer' + '...' // '胖虎dreamer胖虎dreamer胖虎dreamer胖虎dreamer胖虎dreamer...'

// 當然,最重要的是,也請你有空試著親手體驗下其他操作符的效果!

複製程式碼

當然,光有一堆基礎元素還是不夠的,Bigger than bigger!我們希望有比基礎元素更大,更有趣,能表示更多意義的組合元素,第一個我們瞭解到的組合元素你已經知道它大概長什麼樣了:

{
    name: '不知名的小草',
    color: '藍色',
    description: '救贖之地裡不知名的藍色小草,能夠很快的生長,暫時不知道有什麼作用,但是睡在上面挺舒服。',
    words: '我是一顆小草小草小草~~~',   
    // ...
}

{
    name: '棕色大石頭',
    color: '棕色',
    description: '救贖之地裡散落的一塊巨大石頭,暫時不知道有什麼作用,但是異常的堅硬。',
    words: '我是一顆小草...唉,不對,我是一塊石頭石頭石頭~~~',
    // ...
}
複製程式碼

在JavaScript世界中, 這種組合元素有個特別的名稱叫做物件(Object), 冒號 左邊的name,color這些通常叫做屬性名(property name)鍵名(key), 冒號右邊的元素像'棕色大石頭'這些通常叫做屬性值(property value),當然出現在右邊的還會有一種叫做方法(method)的東西,以後我們會遇見它。

你可能會覺得物件(Object)這個名稱很奇怪,但是不管它叫什麼,希望你能用你自己的方式去理解它,比如,也許在某個世界,它就是一個物體(Object),一株藍色小草呢?

image

最後,我們提到過,在試著將組合元素放進變數時,它並不會像基礎元素那樣,讓我們直接把它放進去,最後我們能放進變數裡面的,會是一個類似它的分身一樣的東西,在我們具體瞭解這種情況之前,試著想一想,如果讓你憑感覺給出一個答案,你覺得這裡的分身會有什麼作用?為什麼在對待組合元素時,不直接簡單地把它放進變數裡面呢?

一些可能有用的小提示

把一隻小貓裝進一個冰箱和把一頭大象裝進冰箱,哪個更麻煩?

要是我們還會經常把大象取出來看一下又放進去呢?

或者如果我們要把一堆大象裝進冰箱裡,我們得需要多少個冰箱?又需要多大的冰箱?冰箱要不要錢?

一些你可能關心的問題

1、為什麼這次又又等這麼久才更新,年不是早就過完了?

年是過完了。。。主要是最近各種事情比較多比較忙,然後也一直在考慮怎麼寫比較好,整理了一下大方向劇情、內容和相關資料,還有就是經常感覺內容讀著怪怪的所以翻來覆去改了很多遍,不管怎樣,以後儘量更新快一些。。。

2、在天辰的世界裡,物件(Object)被描繪成了小草,石頭這些東西,而且他們還能說話,這樣描繪會不會過於勉強了?還有胖虎的大喇叭又是什麼情況?

本來就是虛構的世界嘛,所以有時候看起來可能是會有點浮誇和勉強,不過,有時候換個角度看問題也許會更有趣。

有一點我們上面沒有提到的是,object的key實際上是一個字串元素,上面的name,color這些都是字串,也就是說,下面這幾種方式實際是一樣的。

{
    name: '藍色小草',
}

{
    'name': '藍色小草',
}

{
    "name": '藍色小草',
}

複製程式碼

如果我們的字串是一個合法的變數名的話,我們可以不用寫引號,像上面第一種方式一樣,反過來也就是說,如果我們加上引號,我們可以給key取任意字串名稱。

好了,那麼下面這種情況的一株小草也就很正常了:

{
    name: '藍色小草',
    '你叫什麼名字啊?': '我叫藍色小草呀!',
    '那小草你現在多大了?': '馬上就1歲了!',
    '小草你平時都喜歡做什麼啊?': '喜歡和你聊天呀!',
    '嘿,小草,你願意讓我把你放進一個變數嗎?' : '啊,裝進變數?不行不行!我這麼一顆可愛的小草......',
    // ...更多內容
}

複製程式碼

現在你應該發現了,如果我們能用一種規則,通過小草的屬性名,獲取到它的屬性值,那麼就可以和小草對話了,而這種規則。。。

沒錯!就是胖虎的大喇叭所用的規則。

~~好吧好吧,我算是信了你的邪。。。

(下次再見!)

image

小玩具線上版本:

胖虎的規則探測器

藍色小草

烏雲面具

白色小鈴鐺(可以發出聲音)

棕色大石頭(這個也可以)

天辰的小草1號

天辰的小草2號

天辰的小草3號

小草物件Object

相關文章