一、算数运算符 + - * /
1、+ 加运算符
进行加运算之前,先判断是否为字符串的拼接(隐式转化字符串)【特殊情况】
1)通常情况下,先转换成number类型,再进行两数相加
2)NaN参与的运算,返回结果都为0!
3)infinity参与加运算,结果都是infinity
2、- 减运算符
1)通常情况下,先转换成number类型,再进行两数相减
2)NaN参与的运算,返回结果都为0!
3、* 乘运算符
1)通常情况下,先转换成number类型,再进行两数相乘
2)NaN参与的运算,返回结果都为0!
4、/ 除运算
1)通常情况下,先转换成number类型,再进行两数相除
2)NaN参与的运算,返回结果都为0!
5、% 模运算(取余数)
1)通常情况下,先转换成number类型,再进行两数取余
2)NaN参与的运算,返回结果都为0!
二、自增自减 ++ --
1、++ 自增
在自己本身基础上+1,a++相当于a=a+1
1)a++
表示先进行赋值,而后运算
2)++a
表示先进行运算,而后赋值
2、--自减
在自己本身的基础上-1,a--相当于a=a-1
1)a--
表示先进行赋值,而后运算
2)--a
表示先进行运算,而后赋值
三、赋值运算 =
赋值运算符有以下几种:
1、=
将右边的值赋给左边的变量
2、+=
在本身的基础上加多少,a+=5等同于a=a+5
3、-=
在本身的基础上减多少,a-=5等同于a=a-5
4、*=
在本身的基础上乘多少,a*=5等同于a=a*5
5、/=
在本身的基础上除多少,a/=5等同于a=a/5
6、%=
在本身的基础上余多少,a%=5等同于a=a%5
四、比较运算
比较运算的返回结果永远是boolean类型!!!
1、比较运算
1)比较运算符如下:
> 大于
< 小于
>= 大于等于
<= 小于等于
2)比较运算的规则:
a.更多的时候是数字比较,其余数据类型会先转化成数字进行比较;
b.任何值都不能和NaN进行比较!
2、相等运算
1)相等运算符如下:
== 相等
!= 不相等
2)相等运算规则:
a.相同类型数据直接比较(NaN除外),不同类型会先转化成数字进行比较(特殊情况除外)
b.特殊情况:
null == 0 返回false //null只和null或者和undefined比较才会返回true
null == 0 返回true
NaN ==NaN 返回false //NaN和任何值都没法比较,包括自己
3、全等运算
1)全等运算符如下:
=== 全等
!== 不全等
2)全等运算的规则
a.全等运算会同时比较类型和值,只有当类型和值都相等时才返回true,否则返回false
五、逻辑运算
1、&& 与运算
1)与运算规则规则:
判断第一个条件的布尔值是否为true,如果是,返回第二个条件的值(这个值不一定是布尔值);如果不是,直接返回第一个条件的值(不会再执行第二个条件)
2、|| 或运算
1)或运算规则:
先判断第一个条件的布尔值是否为false,如果是,返回第二个条件的值(这个值不一定是布尔值);如果不是,直接返回第一个条件的值(不会再执行第二个条件)
3、! 取反运算
1)取反运算规则:
取反运算会将非布尔类型的值转化为布尔类型并取反(false变为true、true变为false)
六、一元运算符
1、+
+运算会将非number类型的数据转化成number类型(就是number类型的隐式转换)
2、-
-运算会将非number类型的数据转化成number类型,同时取负值
七、三元运算符
1、语法格式:
条件判断 ? 执行语句1 : 执行语句2;
如果说条件判断为true,执行语句1,否则执行语句2(语句1和语句2不可能同时被执行)
2、缺陷:
1)条件多的时候代码会很乱,不利于维护
2)只能执行一条语句,不能执行多条语句,使用if条件判断可以解决以上缺陷
八、输入语句
语法:
var x = prompt();
prompt函数会返回一个值,这个返回值类型一定为string,但如果取消输入,会返回null空对象;
九、判断是否为NaN
1、isNaN(x)函数
1)判断x是否是NaN,函数会返回一个布尔类型的值,如果判断结果是NaN,返回true;判断结果不是NaN,返回false
2)isNaN()函数会先将数据转化为number类型,然后再进行判断
十、条件分支语句
1、语法:
if (条件1){
执行语句1;
}
else if (条件2){
执行语句2;
}
else if (条件3){
执行语句3;
}
...
else{
执行语句4;
}
2、注意:
if条件分支语句满足了前面某个条件并执行完语句之后,不会再执行剩下的条件