很多人第一次學 JavaScript 語法時,都覺得它像一座迷宮:規則很多、坑也不少。

而我那天晚上敲代碼敲到困,眼睛一閉一睜,居然穿越到了一個叫 “JS 魔法城” 的奇怪地方。城門口立着一塊大牌子,上面寫着:

“來者止步:進入本城,請遵守 JavaScript 語法,否則法術失敗、代碼報錯、Bug 會追着你跑。”

我揉揉眼睛,心説:這不是我每天敲的那些語法嘛?

結果城門後面卻跑出一位小精靈,頭上還戴着“變量標識符管理局”字樣的小帽子。

“歡迎來到 JS 魔法城,小米!我們要帶你參觀五大法術規則。學會它們,你就能成為真正的 JavaScript 魔法師!”

我當然同意了。畢竟誰不想升級一下自己的編程魔法?於是,小精靈帶我踏上了五大語法法則的冒險之旅。

第一站:區分大小寫——城裏的“護城河”

走進城門的瞬間,精靈嚴肅地説:

“小米,你先記住,這個城市的法術——嚴格區分大小寫!”

我想起自己曾經在項目裏,因為寫成 Document 而不是 document,導致調 bug 調了一下午。小精靈揮動魔杖,一行代碼浮現在空中:

小米的奇幻編程之旅:當 JavaScript 語法變成了一座魔法城_標識符

他解釋:

  • name 和 Name 是兩個完全不同的變量
  • document 和 Document 就像城裏的衞兵和國王,地位完全不同
  • function 不能寫成 Function
  • let 和 Let 完全不是一回事

“如果你把大小寫搞混,我們這座城的護城河會立刻把你的法術淹了。”

這話讓我突然覺得,JavaScript 像一位古板但認真負責的城主:

不聽招呼,不認錯字,更不會幫你兜底!

第二站:標識符——魔法身份證辦理處

接下來我們來到“變量標識符管理局”。大門口寫着:

“想要在 JS 城裏存在,你必須先獲得合法身份。”

精靈告訴我:在 JS 裏,每個變量、函數、類,其實都像城裏的居民,都需要一張合法的“身份證”,這就是 標識符(Identifier)

標識符的規則(像身份證的辦理條件)

我看到牆上貼着一張大表格:

小米的奇幻編程之旅:當 JavaScript 語法變成了一座魔法城_標識符_02

小精靈示範了一些合法與非法的標識符:

小米的奇幻編程之旅:當 JavaScript 語法變成了一座魔法城_嚴格模式_03

小精靈説:“我們 JS 魔法城的居民都靠標識符來辨認身份。所以,如果身份證不合格,城衞兵一律不放行。”

第三站:註釋——魔法筆記圖書館

走着走着,我們來到一個巨大的圖書館——“註釋檔案館”。裏面滿是發光的書本。我隨手翻開一本,看到上面寫着:

“註釋不是給機器看的,是給人看的。”

小精靈點頭説:“你可以把註釋當作魔法師的筆記。在 JS 魔法裏,註釋不會被執行,但它能讓你以後少踩很多坑。”

他舉起魔杖,空中出現兩種註釋方式:

小米的奇幻編程之旅:當 JavaScript 語法變成了一座魔法城_嚴格模式_04

小精靈補充:

  • 註釋是知識的傳承
  • 註釋是代碼的閲讀指南
  • 註釋甚至可以在團隊合作中救命

我不禁回想起自己看別人寫的業務代碼時,如果沒有註釋,總會抓耳撓腮:“寫這段的是啥意思?”

於是我默默決定:以後寫代碼一定要像 JS 魔法城的魔法師一樣寫註釋。

第四站:嚴格模式——王宮裏的鐵律法

離開圖書館,我們被帶到一個金碧輝煌的宮殿。精靈説:“這裏住着最嚴肅的法官——嚴格模式(strict mode)。”

宮殿門上寫着違反語言規則的魔法師,將在此被審判。嚴格模式就是:

小米的奇幻編程之旅:當 JavaScript 語法變成了一座魔法城_標識符_05

沒想到,嚴肅的法律也能變成這樣一句簡單的小字符串。

嚴格模式的作用

小精靈打開一卷卷軸,上面寫着開啓嚴格模式後的規則:

小米的奇幻編程之旅:當 JavaScript 語法變成了一座魔法城_大小寫_06

他展示一段嚴格模式下的代碼報錯示例:

小米的奇幻編程之旅:當 JavaScript 語法變成了一座魔法城_標識符_07

小精靈説得直白:“嚴格模式就是 JS 城的鐵律。它能讓你寫出更規範的代碼,也能幫你提前暴露 bug。”

我瞬間領悟:嚴格模式不是來限制我的,而是來保護我、幫我少踩坑的。

第五站:語句——魔法師的咒語課程

最後,我們來到“語句學院”。精靈説:

“語句,就是魔法師們真正施展法術的地方。”

我在學院牆上看到這樣一句話:

“語句是 JavaScript 中最基本的執行單位。”

語句有很多種:

小米的奇幻編程之旅:當 JavaScript 語法變成了一座魔法城_嚴格模式_08

小精靈帶我看了幾個典型示例:

小米的奇幻編程之旅:當 JavaScript 語法變成了一座魔法城_嚴格模式_09

他説:“真正寫代碼的時候,你的一切邏輯,就是由各種語句組合而成的魔法。”

我突然覺得,語句就像魔法師的咒語:你念什麼,城裏的元素就會跟着發生變化。

冒險結束:我帶走了 JS 城的語法寶典

遊歷完整個 JS 魔法城,精靈給了我一本厚厚的“JavaScript 語法寶典”。臨走前他説:

“小米,你要記住:學語法不是為了考試,是為了讓未來的你能寫出更強大、更穩健的代碼。”

回到鍵盤前,我突然覺得寫 JavaScript 也沒那麼枯燥了。畢竟,每寫一段代碼,就像在施展一段魔法。

總結:JS 語法城五大法則

為了方便你記憶,我把今天學到的內容整理成一張總表:

小米的奇幻編程之旅:當 JavaScript 語法變成了一座魔法城_標識符_10

END

我始終相信,技術如果只是概念堆砌,會讓人學得煩躁;但如果它能變成故事、變成城堡、變成冒險,就會變得很有趣。

我是小米,一個喜歡分享技術的31歲程序員。如果你喜歡我的文章,歡迎關注我的微信公眾號“軟件求生”,獲取更多技術乾貨!

好朋友們,我們下期再見~