最後會回傳一個值 (包括 null) 的 JavaScript 語法
2 // 數字
1 + 1 // 數學運算
"str" // 字串
"str" // 字串相加
myFun() // 函式呼叫
anotherFun(1) // 帶參數的函式呼叫
myAry[1] // 取 Array 的值
myArray.length // 取物件的值 (dot notation)
myArray['length'] // 取物件的值 (barcket notation)
console.log('lalala') // 也是函式呼叫,但是會回傳 null
function(x) { /* do something */ } // 函式定義,回傳一個 [Function]
[] // 定義新的空 Array
[1, 2, 3] // 定義新的 Array
{} // 定義新的空件
{a:1, b: 2, c: 3} // 定義新的物件
許多時候,你會在表達式前面放一個變數指派,來把結果接起來。
var x = 2
但是你也可以直接把表達式放到其它需要值的地方
var x = [1, 2, 3 * 10]
var myObject = {
myName: getFullName("John", "Doe")
}
myObject[myFun("a")] = myFun2(100 * x[1])
// 不好的示範。很難讀懂。你能夠這麼做不代表你就應該這麼做。
// 你的 code 應該表現你的意圖
var a = 1
整句不會回傳值
a = 1
指派會回傳值
for (var i = 0, len = Things.length; i < len; i++) {
// body
}
for 迴圈只能放用兩個分號隔開的三個表達式,有些可以留空
第一部份是設定初始值,只會執行一次,(可以放無關的初始值設定) var i = 0, len = Thing.length
第二部分是每次累進後,進行驗證條件是否依然符合,若不符合則停止迴圈 i < len
第三部份是累進規則,每跑完一圈則會運行這段,再進行驗證,(可以無關的表達式) i++
因為是 special form,所以你不能這樣:
var x = for (var i = 0; i < 5; i++) {}
if (boolean) {
//body
} else if (boolean) {
//body
}
while (boolean) {
//body
}
do {
//body
} while (boolean);
boolean
可以是任何表達式, 用結果的真假值判斷是否要執行。
只有結果是 false, 0, null, undefined
這四種不執行
因為是 special form,所以你不能這樣:
var x = if(true) { 100; }
switch (value) {
case 'value1':
break;
case 'value2':
break;
default:
break;
}
value
, value1
, value2
可以是任何表達式
同理,你也不能這樣
var x = switch(value) {
default:
break;
}
-
function myFun(param1, param2, param3 = 3) { // body }
parameters (
param1
,param2
,param3
)只能放參數名稱,用逗號隔開, 新版可以有等號,後面放值 -
myFun(args)
arguments (
args
) 可以是任何表達式, 但需符合myFun
定義的要求才會正常運作
-
var x = [value1, value2] var s = new Set([value1, value2])
value1
, value2
可以是任何表達式
-
x[index1] x[index1] = 'new value'
index1
可以是任何表達式,但結果是數字才能正常運作
-
var obj = { "key1": value1, "key2": value2, "key3": value3, } var m = new Map()
key1
, key2
, key3
只能是字串
value1
, value2
, value3
可以是任何表達式
-
-
bracket notation
obj["key1"] obj["key1"] = value
-
key1
可以是任何表達式,但結果是字串才能正常運作
value
可以是任何表達式
* dot notation
obj.key1
obj.key1 = value
key1
無法求值,直接找是否存在該 key1,不存在回傳 null。
value
可以是任何表達式