1. +
⑴ 表示字串串連;一個運算式中如果存在字串,則優先按照字串串連來進行運算 (原生javascript)
(2) 表示數字取正的一元運算子; 如+5,這是一個運算式,其中+是運算子,5是運算元;
(3) 表示數值的求和運算;
2. ()
(1)語句的詞法元素
(2)作為“傳值參數表”
(3)用於強製表達式運算
3. :
(1)聲明直接量對象的成員和聲明標籤
(2)在switch語句中聲明一個分支
(3)在三元運算式中作為一個運算子
4. {}
(1)表示複合陳述式
(2)聲明對象直接量
(3)函數直接量聲明時的文法符號
(4)結構化異常處理的文法符號
5. ,
(1).可以作為連續運算子使用 a=(1,2,3) 返回3 b=1,2,3 返回的是3,在b賦值為1後。會繼續運算後面的,可以用console.log(b=1,2,3) //輸出為1 2 3
(2)數組(或變數)聲明時的文法分隔字元
6. []
(1).聲明數組的直接量
(2).當作存取數組的下標運算子
a=[[1][1]] 得到一個[undefined] 原因如下:
第一個[1]作為一個數組直接量,第二個[1]作為存取數組的下標的運算子。因為[1]只有一個元素。因此[1][1]為undefined 所以會得到[undefined]
b=[[1,2,3][2]] //[3]
c=[[][]] //報錯,因為第二個作為存取數組的下標運算子,索引值不可為空
(3)當作存取對象的下標運算子
var table =[['a',1,2,3] //此處漏掉一個逗號['b',4,5],['c',6,7]]
上面的['a',1,2,3]被解析成一個數組,而['b',4,5]被解析成一個存取數組的下標運算子,因為 ','被當成是連續運算子,因此['b',4,5] => [5]
因此變成
var table =[['a',1,2,3][5],['c',6,7]]
==> var tabel=[undefined,['c',6,7]]
同理: =======>
var table = [['a',1,2]['b',0,1],['c',3,4]]===> table = [0,['c',3,4]]var table = [['a','b','c'][1,2],[4,5,6]]====> tabel = ['c',[4,5,6]]var table = [['a','b','c'][1,'length'],[4,5,6]]====> tabel = [3,[4,5,6]] --->理解為取屬性'length'