运算符也叫操作符,是一种符号(比如+、*、/)。用于赋值值,比较值,执行算术运算等。表达式:由一个或多个运算符、操作数组成的运算式,其功能是执行计算,并返回一个值(最终的运算结果)。表达式由一个或多个运算符、操作数组成的运算式,其功能是执行计算,并返回一个值(最终的运算结果)。
num = 25;//直接赋值。右侧的值赋给左侧的变量
x = y = z = 25;//连续赋值。x,y.z均是25
a += 25;//复合赋值(还有-=、*=、%=等)。等效于a = a + 25;
条件表达式?语句1:语句2
//如果条件表达式值为true或能转化为true,则执行语句1并返回执行结果。反之执行2
var max = a > b ? a : b;
//获取a和b中的最大值
相等和不相等(==和!=)先隐式转换再比较,
全等和不全等(===和!==)仅比较不转换。
66 == "66";//true,比较前字符串转化成数字。
true == "1";// true,隐式转换大部分都是转换为数字
66 === "66"; // false
比较两个值之间的大小关系,返回结果都是布尔值。
25 < 3;// false
"25" < 3;//false:'25'转化成数值25
"25" < "3";//true,都是字符串则比较字符编码值
1 >= true;// true
1 > "0";//true
1 + 2;//3,正常数值加
1 + true;//2.true转化成数值1
true + true;//2,布尔值转成数值
"ab" + "c";//"abc",有字符串时加号为连接符5+*5”//“55”,非字符串会转成字符串再连接
false + "a"; // “falsea"
1 - '2';//-1,减法一律转为数值
2 - true; //1,true转换成数值为1
2 - "";//2,""转换为0
2 + "";//"2”
2 * 1;//2,正常数值相乘
1 * '2';//2,乘的操作数均转为数值
1 / '2';//0.5,除的操作数均转为数值
12 % 5;//2,取余
n % 2;//判断奇偶数:为0是偶数,1则为奇数
x++; //后置,先将x的值作为结果返回,然后x再自增。
++x; //前置,x先自增,然后再把自增后的值作为结果返回。
(1) "&&",与运算:只有前后两个值都是true,则返回true。只要有一个false,就返回false。
true && false;// false
true && true;// true
false && false; //false
false && true;// false
&& 号前后不全是布尔类型的情况(遵行短路原则):如果第一个值能转为false,结果为第一个值,不会再往后执行。如果第一个值能转为true,结果为第二个值。
2 && 1; //1
"" && 1; //""
(2) "||”,或运算:只有前后都是false的时候才返回false。只要有一个true,就返回true。
true || false; // true
false || true; //true
true || true;// true
false || false; //false
|| 号前后不全是布尔类型的情况(遵行短路原则):如果第一个值能够转为true,结果就是第一个值,不会再往后执行。如果第一个值能转为false,结果为第二个值。
"" ||'abc';//'abc'
0 || 7;/7
'a' || 'b'; //"a"
(3) "!",非运算:先把数据转化为布尔值,然后取反所以!为强制转化为bool值。
10; //true
!!'abc'; //true
!!""; //false
语句也称流控制语句? ????
if (i > 30){
alert("大于 30");
}else{
alert("小于等于30");
}
其中if()括号内可以是任意表达式,求值结果不一定为布尔值,但是js会自动调用Boolean()函数将结果转化为布尔值。
(1) while
var i = 0;
while (i < 10) {
i+=2;
}
(2) for
var iCount = 6;
for(var i = 0;i < iCount;i++) {
alert(i);
}
?(3) for in
枚举对象的属性
for (sProp in window){
alert(sProp);
}
(1) break
var iNum = 0;
for (var i = 1;i < 10;i++) {
if (i % 5==0){
break://立即退出循环
}
iNum++;
}
alert(iNum);//输出"4"
?(2) continue
var iNum = 0;
for(var i = 1; i < 10; i++) (
if (i % 5 == 0){
continue;//退出(跳过)当前循环
}
iNum++;
}
alert(iNum);//输出“8"
switch (i){
case 20:
alert("20");
break;
case 30:
alert("30");
break;
case 40:
alert("40");
break;
default:
alert("other");
}
cs