Skip to content

JavaScript 語法構成:陳述式、變數、運算子與保留字

JavaScript 語法構成:陳述式、變數與運算子

在 JavaScript 中,每行指令被稱為 陳述式,並用分號(;)當作結尾,程式是由多個陳述式所組成。瀏覽器會由上而下、由左至右的執行這些陳述式。組成因子有註解、變數、分號、空白、運算子、關鍵字、函式、字符。

註解

註解區域內的程式是不會執行。因此,也可以用來做些筆記。

js
// 這是一行註解

/*
這是個區域註解
這是個區域註解
這是個區域註解
*/

小提醒

註解的價值在於寫下 為什麼這樣做,而不是重複程式碼已經說得很清楚的事。除錯時把某段程式暫時註解掉,也是很常見的用法。

變數

變數可用來儲存資料、進行運算。

在國中應該都有學過代數吧!啥!?為什麼要提起國中的夢靨?別緊張!我們只會用最簡單的部分。例如:x = 10, y = 30, z = x + y,那 z 是多少?這應該回答的出來吧!?

如果換成 JavaScript 應該要怎麼寫呢?

js
const x = 10;
const y = 30;
const z = x + y;

console.log(z);

const、let 與 var

關鍵字可否重新賦值作用域建議
const不可區塊預設使用這個
let區塊值真的需要變動時使用
var函式舊寫法,不建議再用
js
const name = 'Away';
// 錯誤:Assignment to constant variable.
// name = 'Ivy';

let count = 0;
// 可以,count 變成 1
count = 1;

小提醒

const 保證的是 變數不能被重新指向另一個值,並非內容不可改。物件用 const 宣告後,裡面的屬性還是能修改。作用域、提升與命名慣例的完整說明請看 變數與作用域

分號

分號用在每一個陳述式的結尾。其實,也可以省略不寫,為了避免省略可能解析錯誤,還是請習慣性加上分號。

js
console.log(7533967);
console.log(7533967)

空白

在 JavaScript 中,spacetab 鍵與換行符號都是空白。如下:

js
const obj = {
  name: 'Away',
  age: 20,
};

// 與上面一樣
const obj2 = { name: 'Away', age: 20 };

空白不影響程式的執行結果,只影響 讀不讀得懂,所以實務上多半交給 Prettier 這類工具統一格式。

運算子

運算子是什麼東西?常用到的 +-*/= ...等。依用途大致可分成幾類:

類型運算子說明
算術+-*/%四則運算,% 為取餘數
賦值=+=-=把右邊的值指定給左邊
比較===!==><回傳 truefalse,常用在 條件判斷
邏輯&&||!且、或、非

注意

比較請用 === 而不是 ==== 會先做型別轉換,導致 '1' == 1 成立這種容易踩雷的結果;=== 會連型別一起比對,行為好預測得多。

保留字

基本上保留字不能用作識別字,字面常數有特定代表的意義。例如:constletfunctionreturnifelseswitchclassnewthis 都屬於保留字。

js
// 錯誤:Unexpected token 'function'
// const function = 10;

函式、函數、方法、function

可以將多個陳述式,定義在某個區塊內執行單個任務。

js
console.log('Hello HTML');
console.log('Hello CSS');
console.log('Hello JavaScript');

// 下方的寫法只要 todo() 一次就會執行三個陳述式,且可以重複使用
function todo() {
  console.log('Hello HTML');
  console.log('Hello CSS');
  console.log('Hello JavaScript');
}

todo();

函式是 JavaScript 中最重要的一塊,完整的說明請看 函式的構成與使用其他函式寫法

字串

一般靜態文字。可以想像做永遠不會改變的文字,如下方單引號的內容。

js
document.querySelector('#Pic').src = './images/large.jpg';

除了單引號與雙引號,ES6 之後還多了 樣板字串(反引號),可以換行,也能用 ${} 把變數直接嵌進字串裡:

js
const name = 'Away';

// Hello, Away!
console.log(`Hello, ${name}!`);

常見問題

JavaScript 的分號可以不寫嗎?

可以,引擎會自動補上,這個機制叫 ASI(自動分號插入)。但少數情況它補的位置與您想的不同,例如:下一行以括號開頭時,因此建議習慣性加上分號。

宣告變數該用 const 還是 let?

預設用 const,只有真的需要重新賦值時才改用 let。這樣一眼就能看出哪些值會變動,也能避免不小心覆寫。var 屬於舊寫法,新程式碼不建議再用。

什麼是陳述式?

陳述式是一行完整的指令,例如:宣告變數、呼叫函式,通常以分號結尾。程式就是由一連串陳述式組成,瀏覽器由上而下、由左至右依序執行。

保留字是什麼,為什麼不能當變數名稱?

保留字是語言本身已賦予意義的字,例如:constfunctionifreturn。若拿來當變數名稱,引擎會無法判斷該段程式的意圖而拋出語法錯誤。

單引號、雙引號與反引號有什麼差別?

單引號與雙引號功能相同,選一種並在整份專案保持一致即可。反引號是 ES6 的樣板字串,可以換行,也能用 ${} 直接把變數嵌進字串中。

延伸閱讀