算术运算符:
意义 | 运算符 |
---|---|
加 | + |
减 | - |
乘 | * |
除 | / |
取余 | % |
加号的两种作用:
- 两边都是数字则是加法
- 否则连接作用
取余运算:
就是自己学的那种,不用多讲
隐式类型转换:
- 如果参与数学运算的某操作数不是数字型,那么JavaScript会自动将操作数转换为数字型
3*'4'=12
- 隐式转换的本质是内部调用Number()函数
true+true=2 false+2=2 3*'2天'=NaN
有关IEEE754:
- JavaScript中,有些小数的数学运算不是很精准
0.1+0.2=0.30000000000000004
- JavaScript使用IEEE754二进制浮点数算术标准,这会使一些个别的小数运算产生“丢失精度”问题
- 解决办法:在进行小数运算时,要调用数字的toFixed()方法保留指定的小数位数
幂和开根号:
- JavaScript中没有提供幂运算、开根号的运算符,需要使用Math对象的相关方法进行计算
- Math.pow(2,3)=8
- Math.sqrt(81)=9
- Math.ceil()向上取整
- Math.floor()向下取整
关系运算符:
意义 | 运算符 |
---|---|
大于 | > |
小于 | < |
大于或等于 | >= |
小于或等于 | <= |
等于 | == |
不等于 | != |
全等于 | === |
不全等于 | !== |
N
NaN不自等
如何判断某变量值为NaN
-
isNaN()函数
-
但isNaN()也不好用:它的机理是:只要该变量传入Number()的执行结果是NaN,则isNaN()函数都会得到true
逻辑运算符:非→与→或(顺序)
意义 | 运算符 |
---|---|
非 | ! |
与 | && |
或 | \ |
短路计算:
a&&b中:a真,表达式值为b;a假,表达式结果就是a
3&&6=6
undefined&&15=undefined
null&&2=null
' '&&16=' '
NaN&&undefined=NaN
a||b中:a真,表达式结果为a;a假,表达式结果为b
3||6=3
0||6==6
null||undefined=undefined
'a'||'b'='a'
赋值运算符:
意义 | 运算符 |
---|---|
赋值 | = |
快捷赋值 | +=、-=、*=、/=、%= |
自增运算 | ++ |
自减运算 | – |
- 可以连续使用赋值运算符
a++和++a的区别
var a=3;
var b=a++;
console.log(b);//3
console.log(a);//4
var a=3;
var b=++a;
console.log(b);//4
console.log(a);//4
综合表达式:
- 运算顺序:非运算→数学运算→关系运算→逻辑运算
5<3+3//true
3>2&&8>3+4//true
3>2&&8>3+5//false
!13<5-3//true
!13<5-5//flase
变量的范围表示
- 变量a介于5~12之间
a>=5&&a<=12
//判断闰年
//能被4整除且不能被100整除
//能被100整除也能被400整除(符合其一就行)
var year=Number(prompt('请输入年份'));
alert((year%4==0 &&year%100!=0 )|| (year%100==0 && year%400==0));