JavaScript 运算符和表达式

来源:互联网 发布:2016光棍节淘宝交易额 编辑:程序博客网 时间:2024/05/30 04:29

算术运算符与表达式

常见的算术运算符有 + - × ÷

对应在JS当中的运算符为 + - * /

运算的的前提条件是数值才能进行运算,如果不是数值进行加减乘除运算时就会出错。

加法运算:(数值)

var weight=65;
weight = weight + 10;
alert(weight);

weight = weight + 10;

alert(weight);

字符串拼接(字符串)

var dogName="zhangsan";
dogName = dogName +"feng";

dogName = dogName +"feng";

取余运算符在JS当中用%表示 作用:得到两个数的余数

var num1=10;
var num2 =3;
var result=num1%num2;
alert(result);

var num2 =3;

var result=num1%num2;

alert(result);

使用技巧:可以解决周期性问题。

var date=2;/*计算12天后是星期几*/
date =date +12% 7;

date =date+12 %7;

++自增1

num++;等价于num=num+1;

本身是可以不存在,使用基本运算就能代替。他存在的唯一价值就是

简便,快捷。

num++  和 ++num 的区别

a = num++;

a = ++num;

 var num =5;
 var  a = num++先用(给a赋值)后加,等价于a=num;num=num++
 var a = ++num;先加后用,等价于num=num+1a=num
 alert(num)
 alert(a)

Num++ 是先用再加;

var num1=1;
alert(num1++);

alert(num1++);

等价于

alert(num1);
num1 = num1 +1;

num1 = num1 +1;

 

++ num 是先加再用

var num1=1;
alert(++ num1);

alert(++ num1);

等价于

var num1=1;
num1 =num1 +1;
alert(num1);

num1 =num1+1;

alert(num1);

 赋值运算符与表达式

将一个数据赋值给一个变量。

5==a

5=a

a==5

a=5

赋值运算是表示将一个数据存储到某个内存单元中(变量)

varnum =10;

复合赋值运算符

num= num+10;

num +=10;//两者完全等价

+= 可以不存在,完全由普通运算符取代,存在的唯一价值就是简洁方便。

%=

注:如果不理解这个复合赋值运算符,那么就不要用,直接用普通运算符。

关系运算符与表达式

生活中常见的关系运算符

大于 小于 等于 大于等于 小于等于 不等于

>     <   ==    >=       <=       !=

判断两个数是否相等 使用两个=号。与生活中常识不符合,

如何避免判断两个数相等时出错。就是把常量放在等式的前面

把变量放在等式的后面。

绝对相等

变量的值和类型都相等,使用 === 来表示

绝对不相等

变量的值和类型都不相等,使用!==来表示

var num=2;
var str ="2";
alert(num !==str);

var str="2";

alert(num!==str);

对比不相等

var num=2;
var str ="2";
alert(num!=str);

var str ="2";

alert(num!=str);

逻辑运算符与表达式

两个条件同时成立结果才成立

第一个关系是true 第二个关系也是true 那么结果才是true

如果有一个或多个为false 时 结果为false

在JS当中用 &&表示

var num1=10;
var num2=20;
alert(num1>20&&num2> 10);

var num2=20;

alert(num1>20&&num2> 10);

至少有一个成立那么结果成立

就是一个关系为true那么结果就为true

在JS中用||来表示

var num1=10;
var num2=20;
alert(num1>20||num2>10);

var num2=20;

alert(num1>20||num2>10);

结果为原身的对立面,就是当关系成立时,非之后就变为不成立。

非true 之后 结果变为 false

在JS当中用!表示

var num=10;
alert(!(num>10));

alert(!(num>10));

位运算符与表达式

如何得到一个数的二级制。

var num=5;
//101
alert(num.toString(2));

//101

alert(num.toString(2));

同理得到一个数其他进制数,改变.toString里面的值

首先要把数转化为二进制数。

运算法则,只有两者同时为1时结果才为1.其余结果均为0

按位运算,不足的在二进制前补0。例如:计算5和6的与运算

5:    101

6:    110

结果:100

var num1=5;
var num2 =6;

var num2 =6;

alert((num1&num2).toString(2));

两个数有一个为1那么结果就为1然后按位运算

var num1=5;
var num2 =6;
//101
//110
//111
 
alert(num1.toString(2) |num2.toString(2));

var num2=6;

//101

//110

//111

 alert(num1.toString(2) |num2.toString(2));

 

异或

两个值相同时结果为0 两个值不同时结果为1

var num1=5;
var num2 =6;
//101
//110
//011
 
alert(num1.toString(2) ^num2.toString(2));

var num2=6;

//101

//110

//011

 alert(num1.toString(2) ^num2.toString(2));

按位与运算的作用:

(1)  测试某一位是0还是1;

1100010000101011

0000000000001000

(2)设置某些位为0

      1100010000101011

         1111111111110111

x&1 = x (x表示一位二进制,可能是0或者1)

x&0 = 0

按位或运算的作用:设置某些位为1

1100010000101011

0000000000010000

x|0 = x

x|1 = 1

异或运算的作用

x^1 = x(反)(0)

x^0 = x(本)(1)

(互反的)