JavaScript 中分號劃分了社群。有些人無論如何都喜歡使用分號。其他人喜歡不加分號。
在使用分號多年之後,2017 年秋,我決定嘗試根據需要不加分號,並且設定 Prettier 自動移除我程式碼中的分號,除非是必要的程式碼結構需要它們。
現在我發現,不使用分號非常自然,我認為這樣的程式碼看起來更好,它們更簡潔易讀。
這完全可能的,因為 JavaScript 並不嚴格要求分號。當某個地方需要分號時,它會在後台添加它。
這個過程就叫做自動插入分號.
重要的是了解使用分號的規則,這樣可以避免編寫會產生bug 的程式碼,因為它們的行為與您期望的不同。
JavaScript 自動新增分號的規則
JavaScript 解譯器在解釋原始碼時發現以下特殊情況,會自動新增分號:
當下一行程式碼開頭中斷目前行程式碼時(程式碼可以多行編寫)
#當下一行以} 開頭,關閉目前區塊
當到達原始碼的結尾時
當return 宣告在目前行
當break 宣告在目前行
當throw 宣告在目前行
當continue 宣告在目前行
與你的想法不同的程式碼範例
於這些規則,這裡有一些例子。
看範例:
const hey = 'hey' const you = 'hey' const heyYou = hey + ' ' + you ['h', 'e', 'y'].forEach((letter) => console.log(letter))
你會得到錯誤Uncaught TypeError: Cannot read property 'forEach' of undefined,因為基於規則1,JavaScript 會嘗試將程式碼解釋為
const hey = 'hey'; const you = 'hey'; const heyYou = hey + ' ' + you['h', 'e', 'y'].forEach((letter) => console.log(letter))
這段程式碼:
(1 + 2).toString()
列印為"3".
const a = 1 const b = 2 const c = a + b (a + b).toString()
而是引發TypeError: b is not a function 異常,因為JavaScript 嘗試將其解釋為
const a = 1 const b = 2 const c = a + b(a + b).toString()
另一個基於規則4 的例子:
(() => { return { color: 'white' } })()
你希望此立即呼叫的函數的回傳值是一個包含color 屬性的對象,但事實並非如此。相反,它是 undefined,因為 JavaScript 在 return 之後插入分號。
相反,你應該將左括號放到return 後面:
(() => { return { color: 'white' } })()
你認為這段程式碼會展示'0':
1 + 1 -1 + 1 === 0 ? alert(0) : alert(2)
相反它會展示2,因為JavaScript 根據規則1 會解釋為:
1 + 1 -1 + 1 === 0 ? alert(0) : alert(2)
結束語
#當心。有些人對分號很有意見。我倒不是很在意,這個工具提供給我們一個不使用它的選擇,所以我們可以避免使用分號。
我不是建議什麼,只是讓你自己做決定。
我們只需要注意一點,即使大多數情況下這些基本場景從未出現在您的程式碼中。
摘選一些規則,如下:
小心使用 return 語句。如果您返回某個內容,請將其添加到與返回內容相同的行中(類似還有break、throw、continue)
永遠不要使用括號開始一行,這些可能與前一行連接起來,形成函數呼叫或數組元素引用
最後,始終測試您的程式碼,以確保它能滿足您的需求。
推薦教學:《JS教學》
以上是JS 代碼要不要加分號?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

JavaScript在Web開發中的主要用途包括客戶端交互、表單驗證和異步通信。 1)通過DOM操作實現動態內容更新和用戶交互;2)在用戶提交數據前進行客戶端驗證,提高用戶體驗;3)通過AJAX技術實現與服務器的無刷新通信。

理解JavaScript引擎內部工作原理對開發者重要,因為它能幫助編寫更高效的代碼並理解性能瓶頸和優化策略。 1)引擎的工作流程包括解析、編譯和執行三個階段;2)執行過程中,引擎會進行動態優化,如內聯緩存和隱藏類;3)最佳實踐包括避免全局變量、優化循環、使用const和let,以及避免過度使用閉包。

Python更適合初學者,學習曲線平緩,語法簡潔;JavaScript適合前端開發,學習曲線較陡,語法靈活。 1.Python語法直觀,適用於數據科學和後端開發。 2.JavaScript靈活,廣泛用於前端和服務器端編程。

Python和JavaScript在社區、庫和資源方面的對比各有優劣。 1)Python社區友好,適合初學者,但前端開發資源不如JavaScript豐富。 2)Python在數據科學和機器學習庫方面強大,JavaScript則在前端開發庫和框架上更勝一籌。 3)兩者的學習資源都豐富,但Python適合從官方文檔開始,JavaScript則以MDNWebDocs為佳。選擇應基於項目需求和個人興趣。

從C/C 轉向JavaScript需要適應動態類型、垃圾回收和異步編程等特點。 1)C/C 是靜態類型語言,需手動管理內存,而JavaScript是動態類型,垃圾回收自動處理。 2)C/C 需編譯成機器碼,JavaScript則為解釋型語言。 3)JavaScript引入閉包、原型鍊和Promise等概念,增強了靈活性和異步編程能力。

不同JavaScript引擎在解析和執行JavaScript代碼時,效果會有所不同,因為每個引擎的實現原理和優化策略各有差異。 1.詞法分析:將源碼轉換為詞法單元。 2.語法分析:生成抽象語法樹。 3.優化和編譯:通過JIT編譯器生成機器碼。 4.執行:運行機器碼。 V8引擎通過即時編譯和隱藏類優化,SpiderMonkey使用類型推斷系統,導致在相同代碼上的性能表現不同。

JavaScript在現實世界中的應用包括服務器端編程、移動應用開發和物聯網控制:1.通過Node.js實現服務器端編程,適用於高並發請求處理。 2.通過ReactNative進行移動應用開發,支持跨平台部署。 3.通過Johnny-Five庫用於物聯網設備控制,適用於硬件交互。

我使用您的日常技術工具構建了功能性的多租戶SaaS應用程序(一個Edtech應用程序),您可以做同樣的事情。 首先,什麼是多租戶SaaS應用程序? 多租戶SaaS應用程序可讓您從唱歌中為多個客戶提供服務


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

記事本++7.3.1
好用且免費的程式碼編輯器

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

WebStorm Mac版
好用的JavaScript開發工具

SublimeText3 Linux新版
SublimeText3 Linux最新版