【程式新手】為什麼我寫的 JavaScript、Sass 需要編譯?編譯器又是什麼?

更新於 2024/10/24閱讀時間約 4 分鐘
在初學程式的時候,我曾經看室友開發專案到一半時,突然坐在那發呆,於是我好奇一問,室友說:「我在等程式編譯完成啊。」
還記得當初還是程式小菜雞的我,懞懂無知的說:「編譯?哈哈哈,我們 JavaScript 都不需要編譯耶,可以直接跑在瀏覽器上。」
室友一臉莫名其妙地回我:「噢,是嗎⋯⋯」
現在回想起來真的想要給自己賞一巴掌,這邊我直接講結論,基本上 client 端(前端、APP)所撰寫的語言都需要經過編譯,才能在特定的執行環境中運行。

編譯器究竟是什麼?

在了解編譯究竟是什麼之前,首先要了解:程式碼依照自己所要開發的產品不同,而會有不一樣的執行環境,以我熟悉的前端領域中,一個應用程式的執行環境就是在瀏覽器上,也就是我們常聽到的 Web App。
了解程式碼會有不同的執行環境後,我們就可以來聊聊究竟什麼是編譯器了,首先維基百科針對編譯器的說明是這樣的:
編譯器(compiler)是一種電腦程式,它會將某種程式語言寫成的原始碼(原始語言)轉換成另一種程式語言(目標語言)。
其實我們現在撰寫的語言,有一些是機器(也就是電腦)讀不懂的,於是我們就需要仰賴其他電腦程式來幫我們將這些語言轉換成電腦所看得懂的機器語言,這樣的過程我們就稱為編譯。
這裡還要額外提個小知識,我們現在所撰寫的程式語言,都是人為設計出來的,其中不少是為了讓開發者更方便開發數位產品所誕生的。
舉例來說,JavaScript 的主要開發者 Brendan Eich 花了約 10 天創造出這門語言,為了就是讓開發者能更方便整合網頁開發的技術。

為什麼我寫的 JavaScript、SASS 需要編譯?

一開始寫 JavaScript 的時候,可能會有些對瀏覽器的誤會,諸如:以為瀏覽器讀得懂所有 JavaScript 的語法、以為 JavaScript 會一邊執行一邊報錯等。
這邊舉個大家最熟悉的例子,許多新的 JavaScript 語法、型別,或是 CSS3 的特定語法, IE 瀏覽器是不支援的,這就能說明,JavaScript 並不是適用於所有的執行環境,更多的是仰賴編譯器(Compiler)來進行處理,讓瀏覽器能讀懂特定的語法。
除了我們所熟知的 Google V8 引擎,可以讓 JavaScript 這個語言在瀏覽器上執行的效能更快外,Bable.js 也是知名的編譯器,可以讓同一支 JavaScript 檔案相容在不同的瀏覽器中。
再來我們聊聊為什麼大家常用的 SASS 程式語言也需要透過 SASS Loader、SASS Compiler 來進行編譯。
原因很簡單:那就是瀏覽器的內建引擎也讀不懂 SASS、SCSS,於是我們就必須仰賴其他的工具來進行編譯,將這門語言轉譯成瀏覽器讀的懂 CSS 。
一旦了解程式語言基本上都是要透過編譯來執行後,就可以減少開發上的除錯時間。
舉例來說,有時候你在框架中發現自己撰寫的程式碼,會一直出現「編譯錯誤」的報錯,基本上有兩個原因:
  1. 你就是把程式碼寫錯了
  2. 你沒有額外安裝編譯器
這件事為什麼會那麼重要呢?
舉個我曾經發生的小蠢事:某一天我很認真地在 Vue Cli 中撰寫 SASS ,但程式碼就是怎麼寫怎麼報錯,最後才發現根本不是我寫錯,而是當時的開發環境根本沒有「SASS Loader」呀。
當然編譯器的套件也會有版本相不相容的問題,但那又是另外一個議題了。
主要是希望大家可以透過這篇文章,稍微了解前端在開發時會遇到的編譯概念,在除錯時可以多一個工具及方向。
希望今天的文章有幫助到正在閱讀的你,如果你喜歡我的文章的話,可以留下你的愛心或是收藏我的文章,也或者可以點選「贊助」,你的一杯咖啡絕對是我持續寫下去的動力!或是透過拍拍手,用你小小的行動支持我的創作!
我是Vivian,我們下次見。
關於我:
一名從英文系畢業的前端工程師,喜歡閱讀、寫東西及自我成長。
|聯絡我:vivian.enlife@gmail.com
為了追求可以窩在座位上、可以心無旁騖思考問題、座位可以亂七八糟沒關係、不需要到處哈腰點頭跑客戶,不用腳踩十公分、連妝都可以不用化的職場人生,文組少女毅然決然踏上RD的養成日常。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
前陣子有讀者來信詢問我:「嗨!Vivian,我想要請問妳都是在哪裡學程式的呢?是實體課程嗎?」
前陣子有讀者來信詢問我:「嗨!Vivian,我想要請問妳都是在哪裡學程式的呢?是實體課程嗎?」
你可能也想看
Google News 追蹤
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
本文介紹了學習Python後,如何將日常自然語言翻譯成程式碼。並運用所學知識解決實際問題。這些練習不僅鞏固了學習者的程式設計能力,還提升解決問題的思維能力。適合所有想要進一步瞭解程式設計邏輯的Python初學者閱讀。
Thumbnail
撰文、攝影:曾逸允 (IG: Kenneth210n) 台北市有許多景點,繼上次介紹松山文創園區中的秘境「不只是圖書館」。這次介紹一處隱身於台北一隅 ,雖處城市中卻遠離塵囂以「藝居共生」的獨特存在「寶藏巖國際藝術村」。 一處被城市文明所遺忘的秘境,隱匿在熙來攘往的公館鬧區旁,來自四面八方人口聚集的
本文探討多種城市經濟學模式,除了現行的演唱會經濟學和黃色小鴨祭典外,還提供其他可行的經濟模式,如公共藝術設置經濟學、運動賽事經濟學及醫美經濟學等,旨在促進高雄的城市發展。透過這些經濟學的類比與模式學習,可以為高雄帶來更豐富的經濟活動與吸引更多觀光客,鞏固其在國內外的知名地位。
Thumbnail
蘋果在 2024 年先替歐盟地區開放第三方 iPhone NFC 權限後, 如今也發佈新聞稿,宣布將在 iOS 18.1 向更多國家開發者開放第三方應用 iPhone 的 NFC 晶片 API 使用權限, 能夠支援數位錢包、數位鑰匙、大眾交通卡、學生證等。 NFC 是什麼? iPh
Thumbnail
2024.06.13 台中市政府 「幸福宜居城市美學是一個持續進行的過程!」台中市長盧秀燕上任後積極推動「台中美樂地計畫(Taichung Melody)」,持續結合時代脈動趨勢和市民需求,為城市美學注入新元素。位於南屯區的豐富公園,因早期設計的入口牌樓老舊,已不符現代潮流,市府建設局將於6月中以
在一次五天的年假中,我決定開始學習Python編程。雖然最初進展順利,但後來發現自己在解題和邏輯方面遇到了困難。經過思考後,我決定轉而學習C/C++,並且制定了一個計畫,希望成為一名後端工程師。這將需要挑戰我的時間管理能力。
Thumbnail
你是否曾經遇過公司內部繁瑣的流程,需要填寫各種複雜的表單?或者是公司的資料雜亂的儲存在 Excel,主管希望能夠用更聰明的方法管理訂單或庫存?這時候,你可能會想:「如果有人幫我們開發公司系統,就能解決這些問題了」。然而,可能是公司沒有IT 部門又或是受限於預算,這些願望總是無法實現。
Thumbnail
恭喜你!如果你正在考慮成為一名初階軟體工程師,那麼你即將踏上一條充滿挑戰與機遇的黃金大道。這條路上既有高山峻嶺,也有美麗風光。作為初階軟體工程師,你將體驗到程式設計的奇妙世界,並學會如何在其中找到自己的立足之地。這篇文章將為你揭開這個職業的神秘面紗,帶你了解其中的酸甜苦辣
Thumbnail
投資股市,所要面臨的人性考驗 在投資股市的過程中,有經驗的投資人,一定會經歷,人性的考驗 例如:帳面賠錢時,是否該停損;股票賺錢時,是否該獲利了結 然而,現實的狀況是,大部份的人,過度被 情緒 所主導,以致於在投資的過程中,容易發生,股票賣在阿呆谷,事後卻看著股票揚長狂飆,大嘆三聲無奈 另一個場
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
本文介紹了學習Python後,如何將日常自然語言翻譯成程式碼。並運用所學知識解決實際問題。這些練習不僅鞏固了學習者的程式設計能力,還提升解決問題的思維能力。適合所有想要進一步瞭解程式設計邏輯的Python初學者閱讀。
Thumbnail
撰文、攝影:曾逸允 (IG: Kenneth210n) 台北市有許多景點,繼上次介紹松山文創園區中的秘境「不只是圖書館」。這次介紹一處隱身於台北一隅 ,雖處城市中卻遠離塵囂以「藝居共生」的獨特存在「寶藏巖國際藝術村」。 一處被城市文明所遺忘的秘境,隱匿在熙來攘往的公館鬧區旁,來自四面八方人口聚集的
本文探討多種城市經濟學模式,除了現行的演唱會經濟學和黃色小鴨祭典外,還提供其他可行的經濟模式,如公共藝術設置經濟學、運動賽事經濟學及醫美經濟學等,旨在促進高雄的城市發展。透過這些經濟學的類比與模式學習,可以為高雄帶來更豐富的經濟活動與吸引更多觀光客,鞏固其在國內外的知名地位。
Thumbnail
蘋果在 2024 年先替歐盟地區開放第三方 iPhone NFC 權限後, 如今也發佈新聞稿,宣布將在 iOS 18.1 向更多國家開發者開放第三方應用 iPhone 的 NFC 晶片 API 使用權限, 能夠支援數位錢包、數位鑰匙、大眾交通卡、學生證等。 NFC 是什麼? iPh
Thumbnail
2024.06.13 台中市政府 「幸福宜居城市美學是一個持續進行的過程!」台中市長盧秀燕上任後積極推動「台中美樂地計畫(Taichung Melody)」,持續結合時代脈動趨勢和市民需求,為城市美學注入新元素。位於南屯區的豐富公園,因早期設計的入口牌樓老舊,已不符現代潮流,市府建設局將於6月中以
在一次五天的年假中,我決定開始學習Python編程。雖然最初進展順利,但後來發現自己在解題和邏輯方面遇到了困難。經過思考後,我決定轉而學習C/C++,並且制定了一個計畫,希望成為一名後端工程師。這將需要挑戰我的時間管理能力。
Thumbnail
你是否曾經遇過公司內部繁瑣的流程,需要填寫各種複雜的表單?或者是公司的資料雜亂的儲存在 Excel,主管希望能夠用更聰明的方法管理訂單或庫存?這時候,你可能會想:「如果有人幫我們開發公司系統,就能解決這些問題了」。然而,可能是公司沒有IT 部門又或是受限於預算,這些願望總是無法實現。
Thumbnail
恭喜你!如果你正在考慮成為一名初階軟體工程師,那麼你即將踏上一條充滿挑戰與機遇的黃金大道。這條路上既有高山峻嶺,也有美麗風光。作為初階軟體工程師,你將體驗到程式設計的奇妙世界,並學會如何在其中找到自己的立足之地。這篇文章將為你揭開這個職業的神秘面紗,帶你了解其中的酸甜苦辣
Thumbnail
投資股市,所要面臨的人性考驗 在投資股市的過程中,有經驗的投資人,一定會經歷,人性的考驗 例如:帳面賠錢時,是否該停損;股票賺錢時,是否該獲利了結 然而,現實的狀況是,大部份的人,過度被 情緒 所主導,以致於在投資的過程中,容易發生,股票賣在阿呆谷,事後卻看著股票揚長狂飆,大嘆三聲無奈 另一個場