JavaScript提供了很多运算符,通过运算符,可以将变量连接成语句,语句是JavaScript代码中的执行单位。
赋值运算符
赋值运算符用于为变量指定变量值,与Java、C类似,JavaScript 也使用“=”作为赋值运算符。
通常,赋值运算符可以
- 将一个常量值赋给变量
- 可以将一个变量的值赋给另一个变量
- 一次为多个变量赋值,因为赋值语句本身有值,赋值语句的值是等号(=)右边被赋的值
- 将表达式的值赋给变量
//将变量str赋值为JavaScript
var str1 = "JavaScript";
//将变量pi赋值为3.14
var pi = 3.14;
//将变量赋值为true
var visited = true;
//将变量str赋值为JavaScript
var str2 = "JavaScript";
//将变量str的值赋给str2
var str3 = str2
//为a, b,c ,d赋值,四个变量的值都是7
var a = b = c = d = 7;
//为变量x赋值为12.34
var x = 12.34;
//将表达式的值赋给y
var y = x + 5;
算术运算符
JavaScript支持所有基本算术运算符,这些算术运算符用于执行基本的如加、减、乘、除、求余等运算
- 加法运算符 +
- 减法运算符 -
- 乘法运算符 *
- 除法运算符 /
- 求余运算符 %
- 自增运算符 ++ 自增是单目运算符,而且有a++、++a之分
a++代表先让a执行运算,而后自加
++a代表先自加,加完后让a执行运算 - 自减 - - 也分a- -,- -a之分,区别同上
关于计算,JavaScript还提供了Math()类完成一些如乘方,开方等等复杂运算,
<script type="text/javascript">
//定义变量a为3.2
var a = 3.2;
//求a的5次方,并将计算结果赋给b
var b= Math.pow(a,5) ;
//输出b的值
alert (b) ;
//求a的平方根,并将结果赋给c
var C = Math.sqrt(a) ;
//输出c的值
alert(c) ;
//计算随机数
var d = Math. random() ;
//输出随机数d的值
alert (d) ;
</script>
位运算符
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° .
- ^ = :对于^ = &=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。
在上面的比较运算符中,前面5个比较常见。但后面的严格等于、严格不等于,与普通等
于、普通不等于的区别在于是否支持自动类型转换。
注意
- 由于JavaScript可以自转类型,所以
<script type="text/javascript">
//判断5是否等于"5"
alert(5 == "5") ;
//判断5是否严格等于"5"
alert(5 === "5") ;
</script>
如果有个数字字符串 需要和数值比较,JavaScript可以将字符串类型自动转换为数值进行比较,所以5 == ‘5’是返回true的,但是他们本身类型不同,所以如果用严格等于5 = = = ‘5’,系统会返回false
2. 字母也可以用运算符比较,由于他们都能一一对应Unicode,所以字母比较时,将会比较他们的Unicode值,先比较第一个字母,如果相同,就比较第二个,以此类推
<script type="text/ javascript">
//先比较第一个字母,z的Unicode值比a的Unicode值大,返回true
alert("z">"abc") ;
//先比较第一个字母,a的Unicode值比Z的Unicode值大,返回true
alert("abc" > "XYZ") ;
//前两个字母相同,比较第三个字母,C的Unicode值比B的Unicode值大,返回true
alert("ABC" > "ABB") ;
</script>
逻辑运算符
逻辑运算符用于操作两个布尔型的变量或常量。逻辑运算符主要有如下3个。
- &&:与,必须前后两个操作数都为true才返回true, 否则返回false.
- ||: 或,只要两个操作数中有一个为true, 就可以返回true, 否则返回false。
- !:非,只操作一个操作数,如果操作数为true, 则返回false; 如果操作数为false, 则
返回true。
注意
JavaScript 虽然没有提供| (在Java中被称为不短路或)、& (在Java中被称为不短路与)、^ (异或)等运算符,但实际上我们依然可将它们当成逻辑运算符使用。
三目运算符
三目运算符只有一个“?:”,三目运算符的语法格式如下:
(expression) ? if-true-statement : if- false-statement;
//例
2 > 1 ? alert("2大于1") : alert("2小于1")
三目运算符的运算规则是:先对逻辑表达式expression求值,如果逻辑表达式返回true,
则执行第二部分的语句;如果逻辑表达式返回false,则返回第三部分的语句
逗号运算符
逗号运算符允许将多个表达式排在一-起,整个表达式返回最右边表达式的值。
void运算符
void运算符用于强行指定表达式不会返回值。
typeof和instanceof运算符
typeof运算符用于判断某个变量的数据类型,它既可作为函数来使用,例如typeof(a)可返回变量a的数据类型;也可作为–个运算符来使用,例如typeofa也可返回变量a的数据类型。不同类型参数使用typeof运算符的返回值类型如下:
- undefined 值: undefined。
- null值: object。
- 布尔型值: boolean。
- 数字型值: number.
- 字符串值: string。
- 对象: object。
- 函数, function。