运算符
JavaScript提供了相当丰富的运算符,运算符也是JavaScript语言的基础。通过运算符,可以将变量连接成语句,语句是JavaScript代码中的执行单位。
JavaScript的运算符并不比其他高级语言的运算符少,它同样提供了算术运算符、逻辑运算符、位运算符。JavaScript支持的运算符,与Java、C支持的运算符非常相似。下面依次介绍JavaScript中的运算符。
赋值运算符
赋值运算符用于为变量指定变量值,与Java、C类似,JavaScript也使用“=”作为赋值运算符。通常,使用赋值运算符将一个常量值赋给变量。
算术运算符
JavaScript支持所有的基本算术运算符,这些算术运算符用于执行基本的数学运算:加、减、乘、除和求余自加自减等。
位运算符
JavaScript支持的位运算符与Java支持的位运算符基本相似,大致有如下7个位运算符。
➢ &:按位与。
➢ |:按位或。
➢ ~:按位非。
➢ ^:按位异或。
➢ <<:左位移运算符。
➢ >>:右位移运算符。
➢ >>>:无符号右移运算符。
加强的赋值运算符
赋值运算符可以与算术运算符、位运算符等结合,从而成为功能更加强大的运算符。结合后的加强运算符如下。
➢ +=:对于x += y,即对应于x = x + y。
➢ −=:对于x −= y,即对应于x = x − y。
➢ *=:对于x *= y,即对应于x = x * y。
➢ /=:对于x /= y,即对应于x = x / y。
➢ %=:对于x %= y,即对应于x = x % y。
➢ &=:对于x &= y,即对应于x = x & y。
➢ |=:对于x |= y,即对应于x = x | y。
➢ ^=:对于x ^&= y,即对应于x = x ^ y。
➢ <<=:对于x <<= y,即对应于x = x << y。
➢ >>=:对于x >>= y,即对应于x = x >> y。
➢ >>>=:对于x >>>= y,即对应于x = x >>> y。
比较运算符
比较运算符用于判断两个变量或常量的大小,比较运算的结果是一个布尔值。JavaScript支持的比较运算符如下。
➢ >:大于,如果前面变量的值大于后面变量的值,则返回true。
➢ >=:大于等于,如果前面变量的值大于等于后面变量的值,则返回true。
➢ <:小于,如果前面变量的值小于后面变量的值,则返回true。
➢ <=:小于等于,如果前面变量的值小于等于后面变量的值,则返回true。
➢ !=:不等于,如果前后两个变量的值不相等,则返回true。
➢ ==
:等于,如果前后两个变量的值相等,则返回true。
➢ !==
:严格不等于,如果前后两个变量的值不相等,或者数据类型不同,都将返回true。
➢ ===
:严格等于,必须前后两个变量的值相等,数据类型也相同,才会返回true。
逻辑运算符
逻辑运算符用于操作两个布尔型的变量或常量。逻辑运算符主要有如下3个。
➢ &&:与,必须前后两个操作数都为true才返回true,否则返回false。
➢ ||:或,只要两个操作数中有一个为true,就可以返回true,否则返回false。
➢ !:非,只操作一个操作数,如果操作数为true,则返回false;如果操作数为false,则返回true。
三目运算符
三目运算符只有一个“? :”,三目运算符的语法格式如下:
(expression)?if-true-statement: if-false-statement;
三目运算符的运算规则是:先对逻辑表达式expression求值,如果逻辑表达式返回true,则执行第二部分的语句;如果逻辑表达式返回false,则返回第三部分的语句。
逗号运算符
逗号运算符允许将多个表达式排在一起,整个表达式返回最右边表达式的值。
例子
// 声明变量a , b , c , d。
var a , b , c , d;
// 使用逗号运算符为a赋值,最右边的表达式为56,因此a的值为56。
a = (b = 5, c = 7, d = 56);
// 输出四个变量的值。
document.write('a = ' + a + ' b = '
+ b + ' c = ' + c + ' d = ' + d);
void运算符
void运算符用于强行指定表达式不会返回值。
例子
// 声明变量a,b,c,d。
var a , b , c , d;
// 虽然最右边的表达式为56,
// 但由于使用了void强制取消返回值,因此a的值为undefined。
a = void(b = 5, c = 7, d = 56);
// 输出四个变量的值。
document.write('a = ' + a + ' b = '
+ b + ' c = ' + c + ' d = ' + d);
typeof和instanceof运算符
typeof运算符用于判断某个变量的数据类型,它既可作为函数来使用,例如typeof(a)可返回变量a的数据类型;也可作为一个运算符来使用,例如typeof a也可返回变量a的数据类型。
不同类型参数使用typeof运算符的返回值类型如下:
➢ undefined值:undefined。
➢ null值:object。
➢ 布尔型值:boolean。
➢ 数字型值:number。
➢ 字符串值:string。
➢ 对象:object。
➢ 函数:function。
与typeof类似的运算符还有instanceof,该运算符用于判断某个变量是否为指定类的实例,如果是,则返回true,否则返回false。
例子
// 定义一个数组
var a = [4, 5];
// 判断a变量是否为Array的实例
alert(a instanceof Array);
// 判断a变量是否为Object的实例
alert(a instanceof Object);
注:本博客内容节选自李刚编著的疯狂HTML 5/CSS 3/JavaScript讲义 ,详细内容请参阅书籍。