接笔记10
2.3算术运算符与表达式
常见的算术运算符有 + - * /
加法运算:
var weight = 65;
weight = weight + 10;
alert(weight);
字符串拼接:
var dogName = "zhangsan";
dogName = dogName + "feng";
alert(dogName);
求余运算符:%
作用:得到两个数的余数
var num1 = 10;
var num2 = 3;
var result = num1 % num2;
alert(result);
使用技巧:可以解决周期性问题。
var date =2;
// 计算12天后是星期几
date = date + 12 % 7;
自增运算:++
自增1
num++; 等价于num = num + 1;
本身是可以不存在的,使用本身运算就可以实现,它存在的意义就是简单,快捷。
num++和++num的区别
Num++:先用再加
num1 = num1 + 1;
等价于
var num1 = 1;
alert(num1 ++);
++num:先加再用
var num1 = 1;
alert(++num1);
// 等价于:
var num1 = 1;
num1 = num1+1;
alert(num1);
2.4关系运算符与表达式
大于(>),小于(<),等于(==),大于等于(>=),小于等于(<=),不等于(!=)
判断两个数是否相等,使用==号,与生活中常识不符合,如何避免两个数相等时出错,就把常量放在等式的前面,把变量放在等式的后面。
绝对相等:
变量的值和类型都相等,使用===来表示。
绝对不相等:
变量的值和类型都不相等,使用!==来表示。
var num = 2;
var str = "2";
alert(num !== str);
结果为:true。(既判断了数值,也判断了类型)
2.5逻辑运算符与表达式
与(&&)
两者同时成立,结果才成立
第一个关系是true,第二个关系也是true,那么结果才是true,如果有一个false,结果就为false
或(||)
至少有一个成立,那么结果就为true
非(!)
结果为原身的对立面,就是当关系成立时,非之后就变为不成立。
非ture 为false
2.6赋值运算符与表达式
讲一个数值赋值给一个变量。
赋值运算是表示将一个数据存储到某个内存单元中(变量)。
比如:
var num = 2;
复合赋值运算:
例如:余等5%
var num = 11;
num = num%2;
num %= 2;
alert(num);
红字代码部分实现效果一样。
2.7位运算符与表达式
如何得到一个数的二进制。
var num = 5;
// 101
alert(num.toString(2));
同理得到一个数的其他进制数,改变.toString里面的值
与运算(&)
首先要把数转化为二进制数。
运算法则,只有两者同时为1 时结果才为1,其余结果均为0
按位运算,不足的在二进制前补0。
例如:
var num1 = 5;
var num2 = 6;
// 101
// 110
alert(num1.toString(2)& num2.toString(2));
结果为:100
或(|)
两个数有一个为1,那么结果就为1
var num1 = 5;
var num2 = 6;
// 101
// 110
alert(num1.toString(2)| num2.toString(2));
结果为:111。
异或
两个值相同时,值为1,不同为0。
var num1 = 5;
var num2 = 6;
// 101
// 110
alert(num1.toString(2)^num2.toString(2));
按位与运算的作用:
110101010010010
000000000010000
X&1 = x(表示一位二进制,可能是0或者1)
X&0 = 0
1.测试某一位是0还是1;
2.设置某一位为0
按位或运算的作用:
110101010010010
111111111101111
X|0 = x;
X|1 = 1;
1.设置某些位为1
异或运算的作用
X^1 = *(反面)
X^0 = x