逗号运算符
一般形式:表达式1,表达式2,······,表达式;
计算过程:先算表达式1,再算表达式2,依次计算到表达式n,整个逗号表达式的值是最后一个表达式的值
var a, b, c, d;
d=( a = 1 +1, b = 3 * 4, c = 10 / 2 );
document.write(d + '<br>'); //输出为5
三目运算符
条件表达式?语句1:语句2;
条件为真,执行语句1,为假,执行语句2
如果条件表达式的求值结果是一个非布尔类型,会将其转换成布尔类型再计算
练习
var a, b, c, max;
a = +(prompt('请输入第1个数:'));
b = +(prompt('请输入第2个数:'));
c = +(prompt('请输入第3个数:'));
max = a > b ? a : b ;
max = max > c ? max : c;
document.write(max);
从键盘录入字符串:a=prompt()
从键盘录入数字:a=+(prompt())
代码块
程序是由一条一条语句构成的,语句是按照自上向下的顺序一条一条执行的,在js中可以用{}
来为语句分组
同一个{}
的语句我们称为一组语句,它们要么都执行,要么都不执行
js中的代码块只有分组的作用,没有其他的用途;代码块里面的内容,在外部是完全可见的
在es5,{}
相当于透明的,外面的可以使用里面的数据(var 定义可以);但在es6里,外面的不可以使用里面的数据(let 定义不可以)
//var 定义可以
{
var a = 'hahah';
document.write(a + '<br>');
}
document.write('name= '+ a);//可以输出,正确
//let 定义不可以
{
let a = 'hahah';
document.write(a + '<br>');
}
document.write('name= '+ a);//不会输出,报错
流程控制语句
1.顺序结构:按顺序从上到下依次执行
2.选择结构:对给定的条件进行判断,再根据判断结果来决定执行哪一段代码
3.循环结构:在给定条件成立的情况下,反复执行一段代码
if语句
var a = 10;
if (a > 11){
document.write('true');
}
else if (a < 11){
document.write('false'); //js里没有elif
}
else{
document.write('11');
}
注意
1.;
也是一个语句
if (4>6);//if和下面的输出已经无关
{
document.write('4>6');
}
//输出为 4>6 ,因为 ;也算一个语句
2.if else 是一个整体,else匹配if时是匹配离它最近的一个if
3.尽量遵循 if(0==a)的写法 (将变量写到等号右边)
4.if语句可以嵌套使用
//石头剪刀布练习
var player, computer;
computer = parseInt(Math.random()*3);
// parseInt()返回一个整数
//Math.random() 会随机产生0~1之间的随机数
player = parseInt(+(prompt('请出拳:(0->剪刀,1->石头,2->布)')));
//parseInt()将字符串转换成数字,遇到无效就停止,所以可以将小数转成整数
if (player < 0 || player > 2){
player = +(prompt('输入无效,请重新出拳:(0->剪刀,1->石头,2->布)'));
}
else{
document.write('player=' + player + '<br>');
document.write('computer=' + computer + '<br>');
if(computer > player){
document.write('很遗憾,你输了!');
}
else if(computer < player){
document.write('恭喜你,你赢了!');
}
else{
document.write('你们是平局!');
}
}
Switch语句
Switch和if一样都是选择结构,都会对给定的条件进行判断,再根据判断结果来决定执行哪一段代码
switch(条件表达式){
case 表达式:
语句1;
break;//不加break就会依次执行case,是错误的
·
·
·
case 表达式:
语句n;
break;
default:
语句n+1;
break;
1.计算条件表达式的值,当条件表达式的值和某一个case
后面的值和类型都相等时,执行该case
后的语句,并跳出switch
循环,不需与其他case
再比较,如果没有case
的值与条件表达式的值相等,执行default
的语句并跳出循环。
2.先计算表达式的值再进行判断
3.default
在switch中的位置是任意的;default
可以省略,匹配不到就不输出
//成绩等级输出
var score;
score = +(prompt('请输入学生成绩'));
switch (parseInt(score / 10)) {
case 10:
case 9:
document.write('A');
break;
case 8:
document.write('B');
break;
case 7:
document.write('C');
break;
case 6:
document.write('D');
break;
default:
document.write('E');
break;
}
while循环
while(条件表达式){
语句1;
语句2;
·
·
·
}
判断表达式是否为真,如果为真就执行大括号里的语句,直到条件不成立时结束while循环
注意;
也是一条语句
break;
1.只能用于循环语句和switch语句
2.在一层循环里,直接终止循环;在多层循环中,只能跳出理它最近的这层循环,只能向外跳一层
continue;
1.与break;
的区别:跳出当前循环中的剩余语句,而执行下一次循环
var num=1;
while(num<=10){
document.write(num + '<br>');//输出1,2,3
if (num==3){
break;
}
num++;
}
do-while循环
do{
语句1;
语句2;
·
·
·
}while(条件);
首先会执行一次循环体中的语句,再判断while中的条件是否为真,如果为真,再执行do里的语句,直到条件不成立。
for循环
for((1)初始化表达式; (2)循环条件表达式 ; (4)循环操作表达式){
(3)执行语句;
}
先初始化表达式,判断表达式是否为真,为真则执行循环体中的语句,然后再执行操作表达式,再判断表达式是否为真······直到条件不再成立