1,赋值运算符
用‘=‘连接,作为赋值运算符
通常用常量值赋给变量
var str = "javaScript";
也可以变量赋给变量
var a = "opo";
var b = a;
也可以表达式赋给变量
var a = 9;
var c = a+5;
2,算数运算符
+ - * / :加减乘除
%:取余
var a = 5.2;
var b = 3.1;
var mod = x % y;//mod为2.1
++ :自加(操作符在前,先自加;操作符在后,后自加)
- - :自减同上
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<script>
var a=5;
var b=5;
var c = a++ + 4;
var d = ++b + 4;
alert(a+"\n"+b+"\n"+c+"\n"+d);//结果:6 6 9 10
</script>
</body>
</html>
复杂的算数运算需要借助Math下的类方法
*Math.pow();---->乘方运算
*Math.sqrt();---->开方运算
*Math.random();------>0.0 ~ 1.0(不包含) 之间的一个伪随机数。
生成一个min~max[min,max)的随机数
-----Math.random() * (max - min) + min;
-----例如:生成[10,20)的随机数
-----Math.random() * (20 - 10) + 10; //不含最大值,含最小值
生成一个min~max [min,max)的随机整数
-----Math.floor(Math.random() * (max - min)) + min;
-----例如:生成[10,20)的随机整数
-----Math.floor(Math.random() * (20 - 10)) + 10; //不含最大值,含最小值
如果生成一个[min,max]即含最大值也含最小值的随机整数
-----Math.floor(Math.random() * (max- min+1)) + min; //含最大值,含最小值
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<script>
var a=5;
var b = Math.random();
var c = Math.pow(a,3);
var d = Math.sqrt(a);
alert(a+"\n"+b+"\n"+c+"\n"+d);//结果:5 0-1随机数 125 2.236067977
</script>
</body>
</html>
3、位运算符
需要转换成二进制来运算。
& 按位与
| 按位或
~ 按位非
^ 按位异或
<< 左位移运算符
>> 右位移运算符
>>> 无符号右移运算符
4、加强的赋值运算符
+= :对于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;
5、比较运算符
> 大于
>= 大于等于
< 小于
<= 小于等于
!= 不等于
== 等于
!== 严格不等于
=== 严格等于
严格等于,严格不等于不支持自动转换,不仅值相等,而且类型相同
普通等于,普通不等于支持自动转换,即只要值相等,即返回true
6、逻辑运算符
&&:与,前后两个操作数都为true,结果才为true
||:或,前后两个操作数有一个为true,结果为true
!:非,操作数为true,返回false,操作数为false,返回true
7、三目运算符
?: 语法格式如下
(expression) ? if-true-statement : if-false-statement;
5>3?alert('5大于3'):alert('5小于3');
8、逗号运算符
允许多个表达式排在一起,整个表达式返回最右边表达式
//声明变量 a, b, c, d
var a, b , c , d ;
//使用逗号运算符为 a 赋值, 最右边的表达式为 56, 因此 a 的值为 56
a= (b = 5, c = 7, d = 56);
9、void运算符
用于强行指定表达式不会有返回值
a=void(b=5,c=4,d=122);
//a 的值为 undefined;定义了却没有值
10、typeof和instanceof运算符
typeof可以判断某个变量的数据类型
用法:typeof a;//返回a的数据类型
不同类型返回值如下:
- undefined 值: undefined。
- null 值: object。
- 布尔型值: boolean。
- 数字型值: number。
- 字符串值: string。
- 对象: object。
- 函数: function。
instanceof 运算符与typeof类似, 该运算符用于判断某个变量是不是指定类的实例
用法:a instanceof Object;//判断a是不是Object的实例
<script>
//定义一个数组
var a = [ 4, 5];
//判断 a 变量是否为 Array 的实例
alert(a instanceof Array) ;
// 判断 a 变拉是否为 Object 的实例
alert(a instanceof Object);
</script>
因为Object为最大的类,所以JavaScript所有的类都是Object的子类。
执行结果:两个结果都为true
true true