3.3 运算符介绍
在任何一种语言中,处理数据是必不可少的一个功能,而运算符就是处理数据中所不能缺少的一种符号。
3.3.1 运算符
运算符(Operator)是一种用来处理数据的符号,日常算数中所用到的“+”“-”“×”“÷”都属于运算符。在JavaScript中的运算符大多也是由这些符号表示,除此之外,还有一些运算符是使用关键字来表示的。根据处理对象数目的多少来分,JavaScript中的运算符可以分为以下3种。
■一元运算符(unary operator):如果运算符所处理的对象只有一个,就称为一元运算符。如在一个正数前加一个“-”号,将该正数变为负数,这个“-”就是一元运算符。一元运算符又称为单元运算符。
■二元运算符(binary operator):如果运算符所处理的对象有两个,就称为二元运算符。如加号(+)、减号(-)等运算符都是二元运算符。
■三元运算符(ternary operator):如果运算符所处理的对象有三个,就称为三元运算符。JavaScript中只有“?:”运算符是三元运算符。
根据运算符的功能来分,JavaScript中的运算符可以分为以下几种。
■算术运算符(arithmetic operator):返回结果为数字型的运算符。
■比较运算符(comparison operator):比较两个操作数,并返回布尔值的运算符。
■字符串运算符(string operator):返回结果为字符串的运算符。
■赋值运算符(assignment operator):可以将某个数值指定给变量的运算符。
■逻辑运算符(logical operator):返回结果为布尔型的运算符。
■位运算符(bitwise operator):按位操作的运算符。
■特殊运算符(special operator):以上所有运算符之外的其他运算符。
3.3.2 操作数的类型
运算符所连接的是操作数,而操作数也就是变量或常量,变量和常量都有一个数据类型,因此,在使用运算符创建表达式时,一定要注意操作数的数据类型。每一种运算符都要求其作用的操作数符合某种数据类型。例如算术运算符中的乘号(*),要求其左右操作数的类型都是数字型,如果使用字符型("abc" * "def"),则会产生错误。
注意
由于JavaScript可以隐式转换类型,因此对于“"123" * "456"”这个表达式,JavaScript会自动转换为“123 * 456”。事实上,隐式类型的转换,也恰恰是运算符对操作数类型要求的一种体现。