术语:一元运算符、二元运算符、运算元
运算元:被运算符作用的单位叫做运算元。 比如:
let a = 1 + 2上面运算公式中,被 + 加号 作用的 1、2 就是运算元
一元运算符:只有一个运算元的运算符。 比如:
let a = +1 // a=1 上面运算公式中,运算符加号只有一个运算元,所以 + 是一元运算符。同理二元运算符是 let a = 1 + 1(1)运算符有很多种,常见的比如: + 、- 、 *、 / 等 在所有运算符中,只有 + 加号会在作用于字符串的时候,进行字符串转换,其余的都会把运算元转换成数值进行计算。
let a = 1 + '1' // 11 let b = '12' - '10' // 2简单来说:在 + 加号运算符运算过程中,如果任一运算元是字符串,那么其它运算元也将被转化为字符串。
(2)数字转换
加号运算符在一元运算符中,如果运算元是数字,则不起任何作用 let a = +1 // 1 let b = +(-2) // -2如果运算元不是数字,则会转换成数字
let a = +'2' // 2(3)运算符优先级 一元运算符优先级是16 ,二元运算符是13-14, = 等号是3
let apples = "2"; let oranges = "3"; // 在二元运算符加号起作用之前,所有的值都被转化为了数字 alert( +apples + +oranges ); // 5(4) = 等号也是运算符 赋值运算符 “=” 会返回一个值 每个运算符都有一个返回值。对于以加号 + 或者乘号 * 为例的大部分运算符而言,这一点很显然。对于赋值运算符而言,这一点同样适用。 语句 x = value 把 value 的值写入 x 然后返回 x。 下面是一个在复杂语句中使用赋值的例子:
let a = 1; let b = 2; let c = 3 - (a = b + 1); alert( a ); // 3 alert( c ); // 0上面这个例子,(a = b + 1) 的结果是赋给 a 的值(也就是 3)。然后该值被用于进一步的运算。 (5)自增/自减
let a = 2 ++a console.log(a) // 3++con 的时候,控制台输出3,是初始值2自增1之后的值 此时con的值为3了,当再次运行con++时候控制台输出还是3 说明++放在变量后面的时候会先赋值再进行自增
++/-- 自增自减只能作用于变量上,不能直接作用于数值
自增/自减的运算优先级比绝大多数运算符要高
let a = 1 let b = ++a * 2 // 4a先进行自增,值由1变成2,再进行 * 运算符运算
逗号运算符 逗号运算符能让我们处理多个语句,使用 , 将它们分开。每个语句都运行了,但是只有最后的语句的结果会被返回。
let a = (1 + 2, 3 + 4); alert( a ); // 7(3 + 4 的结果)逗号运算符优先级很低,比 = 等号还低,所以
let a = 1 + 2, 3 + 4; alert( a ); // 3(1 + 2 的结果)因为逗号运算符优先级很低,所以运算顺序为 1 + 2 3 + 4 let a = 3 , 7 此时 = 先执行,a被赋值为3,后面的7就不会在执行了