运算符:程序中模拟人的思维运算或判断的符号
程序:让计算机按照人的想法去执行任务
运算符的分类:
运算符的优先级:
取余运算
取余运算的使用途径:
1.判断奇偶数:n%2-->1为奇数,0为偶数
2.确保一个运算的结果,不超过某个最大值(除数)
算数运算
++/--运算
n++ (n--同理) :将当前变量中的值递增一,等价于n=n+1;
n++与++n的区别:
单独使用:n++与++n一样
参与到其他运算中:
n++:将n中的值加1,然后返回旧值
++n:将n中的值加1,然后返回新值
例1:
var n=3;
console.log(n++); //n中值加一,返回3
console.log(++n); //n中值加一,返回4
例2:
var my=10;
var lp=my++;
document.write(my); //my加1为11
document.write('<br />');
document.write(lp); //lp加1,返回10
var my=10;
var lp=++my;
document.write(my); //my加1为11
document.write('<br />');
document.write(lp); //lp加1,返回11
例3:
var n=2;
var r=(n++) + (++n) + (n++);
document.write(r); //10
document.write('<br />');
document.write(n); //5
解析:n-->2
n++-->n=3 返回2 和为 2
++n-->n=4 返回4 和为6
n++--->n=5 返回4 和为10
故:r=10,n=5
关系运算
关系运算:将两个值做比较:> < >= <= == != === !==
隐式转换:将所有类型都转为number类型,在比较。比较式成立为true,不成立为false
例如:
var n1=2,n2=3;
var s1="2",s2="3";
var b1=true,b2=false;
document.write(n1>n2); //false
document.write('<br />');
document.write(s1<s2); //true
document.write('<br />');
document.write(b2>b1); //false
特殊情况3种:
1.两字符串做比较:依次PK每一位字符的Unicode编号,只要有一位字符分出大小,就不再比较;
比如: "3">"10"-->"3">''1''--->51>49(Unicode编号)-->true
''smith''>''scott''--->''m''>''c''-->100>99(Unicode编号)-->true
2.NaN:NaN和任何数据做大小或等于比较永远返回false
NaN和任何数据做不等式比较永远返回true
既,NaN不等于任何数,也不等于它本身
isNaN(num):专门判断num是否是NaN,是返回true,不是返回false
所以:如果判断一个数值是否是数字或能被转化为数字,都用isNaN.如果是数字,返回false,否则返回true
故常用为:!isNaN(num),则与实际理解相符。
3.undefined和null
Number(undefined)-->NaN
Number(null)--> 0
===:全等:数据类型相等 ,再比较值是否相等
何时使用:只要不希望关系运算中自动隐式转换
逻辑运算
逻辑运算:综合多个关系运算的结果得出最终结论,返回值只能在TRUE和FALSE中二选一。
隐式类型转换:自动将每个条件转为Boolean类型
&&:关系运算一TRUE&&关系运算二TRUE--》TRUE 否则 FALSE
||: 关系运算一FALSE||关系运算二FALSE--》FALSE 否则 TRUE
!: 关系运算TRUE--》关系运算FALSE
*****短路逻辑:如果前一个条件已经可以得到结论,后续条件不在比较
var input=parseFloat(prompt("please input:"))
input>=500&&(input=input*0.8);
alert("It is "+input );
*****利用&&短路逻辑实现if语句
var input=prompt("请输入回复:");
input!=" "||(input="主人很懒什么都没有留下");
alert("回复:"+input);
*****利用||短路逻辑实现if语句
位运算
左移:n<<m 将n的二进制左移m位
例如:1<<3 -->1* 2的3次方 为8
右移:n>>m 将n的二进制右移m位
例如:8<<3 -->8/2的3次方 为1
扩展赋值运算
+= -= *= /= %= (同理)
+=:例如:n+=2----->n=n+2;
相当于将n中的值+2后,在保存回n中
对于变量的值进行累加时,都可以用扩展赋值运算。
三目运算
三目运算:根据不同的条件,多选一,返回不同的结果。
语法:条件1?值一:
条件2?值二:
·······?·····:
默认值;
var salary=prompt("输入工资:");
alert(salary>=20000?"土豪":
salary<8000?"屌丝":
"一般人");