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'