7.1 表达式
7.1.1 赋值表达式
在 JavaScript 中,赋值表达式的一般语法形式为:“变量 赋值运算符 表达式”,在计算过程中是按照自右而左结合的。其中,有简单的赋值表达式,如 i=1;也有定义变量时给变量赋初始值的赋值表达式,如 var str="Happy JavaScript!";还有使用比较复杂的赋值运算符连接的赋值表达式,如 k+=18
7.1.2 算术表达式
算术表达式就是用算术运算符连接的JavaScript语句。如“i+j+k;” 等即为合法的算术运算符的表达式。算术运算符的两边必须都是数值,若在“+”运算中存在字符或字符串, 则该表达式将是字符串表达式,因为 JavaScript 会自动将数值型数据转换成字符串型数据。例如,“ " 好好学 习 "+i+" 天天向上 "+j;”表达式将被看作是字符串表达式。
7.1.3 布尔表达式
布尔表达式一般用来判断某个条件或者表达式是否成立,其结果只能为 true 或 false。
7.1.4 字符串表达式
字符串表达式是操作字符串的JavaScript 语句。JavaScript 的字符串表达式只能使用“+”与“+=”两个 字符串运算符。如果在同一个表达式中既有数字又有字符串,同时还没有将字符串转换成数字的方法,则返回值一定是字符串型。
7.2 运算符
运算符是在表达式中用于进行运算的符号。
-
赋值运算符:赋值运算符是将一个值赋给另一个变量或表达式的符号。最基本的赋值运算符为“=”主要用于将运算符右边的操作数的值赋给左边的操作数。
-
算术运算符:算术运算符用于各类数值之间的运算,JavaScript的算术运算符包括加(+)、减(-)、乘(*)、除(/)、 求余(%)、自增(++)、自减(--)等共7 种。算术运算符是比较简单的运算符,也是在实际操作中经常用到的操作符。
-
比较运算符:比较运算符在逻辑语句中使用,用于连接操作数组成比较表达式,并对操作符两边的操作数进行比较, 其结果为逻辑值 true 或 false。
-
逻辑运算符:逻辑运算符用于测定变量或值之间的逻辑,操作数一般是逻辑型数据。在 JavaScript 中,逻辑运算符包 含逻辑与(&&)、逻辑或(||)、逻辑非(!)等。在逻辑与运算中,如果运算符左边的操作数为false,系统将不再执行运算符右边的操作数;在逻辑或运算中,如果运算符左边的操作数为 true,系统同样地不再执行右边的操作数。
-
条件运算符:条件运算符是构造快速条件分支的三目运算符,可以看作是“if…else…”语句的简写形式,其语法形式为“逻辑表达式?语句1:语句2;”。如果“?”前的逻辑表达式结果为true,则执行“?”与“:”之间的语句1, 否则执行语句2。
-
字符串运算符:字符串运算符是对字符串进行操作的符号,一般用于连接字符串。在JavaScript中,字符串连接符“+=” 与赋值运算符类似:将两边的操作数(字符串)连接起来并将结果赋给左操作数。
-
位运算符
- 位运算符是将操作数以二进制为单位进行操作的符号。在进行位运算之前,通常先将操作数转换为二进 制整数,再进行相应的运算,最后的输出结果以十进制整数表示。此外,位运算的操作数和结果都应是整型。
- 在 JavaScript 中,位运算符包含按位与(&)、按位或(|)、按位异或(^)、按位非(~)等。
-
移位运算符:移位运算符与位运算符相似,都是将操作数转换成二进制,然后对转换之后的值进行操作。JavaScript位操作运算符有 3 个:<<、>>、>>>。
- “<<”运算符执行左移位运算。在移位运算过程中,符号位始终保持不变。如果右侧空出位置,则自动填充为 0;超出 32 位的值,则自动丢弃。
- “>>”运算符执行有符号右移位运算。与左移运算操作相反,它把 32 位数字中的所有有效位整体右移,再使用符号位的值填充空位。移动过程中超出的值将被丢弃。
- “>>>”运算符执行无符号右移位运算。它把无符号的 32 位整数所有数位整体右移。对于无符号数或正数右移运算,无符号右移与有符号右移运算的结果是相同的。
-
其他运算符
- 逗号运算符:逗号运算符用于将多个表达式连接为一个表达式,新表达式的值为最后一个表达式的值。其语法形式为: “变量 = 表达式 1, 表达式 2”。
- void运算符:void 运算符对表达式求值,并返回undefined。该运算符通常用于避免输出不应该输出的值,其语法形式为“void 表达式”。
- typeof运算符:typeof 运算符返回一个字符串指明其操作数的数据类型,返回值有6 种可能:"number"、"string"、 "boolean"、"object"、"function" 和 "undefined"。typeof 运算符的语法形式为“typeof 表达式”。
7.3 运算符优先级
在 JavaScript 中,运算符具有明确的优先级与结合性。优先级用于控制运算符的执行顺序,具有较高优先级的运算符先于较低优先级的运算符执行;结合性则是指具有同等优先级的运算符将按照怎样的顺序进行运算,结合性有向左结合和向右结合。圆括号可用来改变运算符优先级所决定的求值顺序。
网友评论