十七、运算符的优先级
– 运算符:可以分割多个语句,一般可以在声明多个变量时使用。
– 就和数学中一样,在JS中,运算符也有优先级
在JS中有运算符优先级的表
– 在表中,越靠上,优先级越高;优先级越高,越优先计算
– 遇到优先级不清楚的,可以使用(),改变优先级
<script>
var a;
a = (1 || 2) && 10;
document.write("a =" + a );
</script>
十八、代码块
– 程序是由一条一条语句构成的,语句是按照自上向下的顺序一条一条执行的。
– 在JS中,可以使用{}来为语句分组
– 同一个{}中的语句,称为是一句语句,要么都执行,要么都不执行,
– 一个{}中的语句,也称为代码块。
– 在代码块的后边不用分号。
– JS中代码块只有分组的作用。
{
var a=10;
alert("hello");
console.log("yuju")
}
//一个代码块
{
var a=10;
alert("hello");
console.log("yuju")
}
十九、流程控制语句
流程控制语句
– JS中的程序是从上到下一行一行执行的,
通过流程控制语句可以控制程序执行流程,
使程序可以根据一定的条件来选择执行。
– 语句的分类:
1.条件判断语句
2.条件分支语句
3.循环语句
(一)if语句
语法一:
if(条件表达式)
{
语句……
}
<script>
var a=10;
if(a=10)
alert("1");//执行
alert("2");//不会执行
// if语句只能控制紧随其后的语句
if(a>10)
{
alert("1")
alert("2")
}
</script>
语法二:
if(条件表达式)
{
语句……
}
else{语句…}
if(a>10)
{
alert("1");
}
else
{
alert("2");
}
//返回2
语句三:
if(条件表达式)
{
语句……
}
else if(条件表达式){语句}
else if(条件表达式){语句}
var a=10;
if(a>10)
{
alert("1");
}
else
{
alert("2");
}
if (a>11) {
alert("1");
}
else if (a>5) {
alert("2");
}
else if(a>2)
{
alert("3");
}
//返回2,三条件成立但不再执行
prompt() 可以弹出一个提示框,该提示框会带有有个文本框,用户可以在文本框中输入一段内容,该函数需要一个字符串作为参数,用户输入的内容会作为返回值(string类型),可以定义一个变量来接受该内容。
var score=prompt("");
练习:
//判断小明成绩对应获奖
if (score>100||score<0)
{
alert("error");
}
else if (score==100) {
alert("BMW");
}
else if (score>=80) {
alert("iphone15s");
}
else if (score>=60) {
alert("book");
}
else if (score>0&&score<60) {
alert("die");
}
//判断三个数的大小
var a=+prompt("第1个数:");
var b=+prompt("第2个数:");
var c=+prompt("第3个数:");
if (a<b&&a<c) {
if (b>c) {
alert("a"+"b"+"");
}
else{
alert("a"+"b"+"c");
}
}
if (b<a&&b<c) {
if (a>c) {
alert("b"+"c"+"a");
}
else{
alert("b"+"a"+"c");
}
}
if (c<a&&c<b) {
if (a>b) {
alert("c"+"b"+"a");
}
else{
alert("c"+"a"+"b");
}
}
(二)条件分支语句(switch语句)
语法:
switch (条件表达式) {
case :
语句
break;
case :
语句
case :
语句
break;
case :
语句
break;
case :
语句
break;
default:
语句
break;
执行流程:依次将Switch后的值与case进行全等比较;
– 结果为true则从对应case语句开始执行,当前case后的所有语句都会被执行
– false则不执行
num=2;
switch (num) {
case 1:
console.log("1");
case 2:
console.log("2");
case 3:
console.log("3");
// 返回值为23
default:
break;
}
//使用break可以退出Switch语句
num=2;
switch (num) {
case 1:
console.log("1");
break;
case 2:
console.log("2");
break;
case 3:
console.log("3");
break;
// 返回值为2
(三)循环语句
1、while语句循环
语法:
while(条件表达式)
{
语句
}
//先判断再执行
//while语句在执行时候,先对条件表达式求值判断,如果值为true,则执行循环体,当条件不满足时候,终止循环
//死循环一直执行
while(ture)
{
alert("n++");
}
//可以用break终止
//循环内部可以嵌套其他循环
2、do…while语句循环
语法:
do {
语句
} while (condition);
//先执行再判断
//do…whil循环在执行时候会先执行循环体,循环体执行完毕后对条件表达式判定
//ture则继续执行循环体
//false则结束循环
3、for语句循环
语法
for (初始化表达式;条件表达式;更新表达式)
{
语句
}
执行流程:
– 执行初始化表达式,初始化变量
– 执行条件表达式,结果true继续执行循环,false直接终止循环。
for (i=0;i<7;i++)
{
alert("i");
}
//for循环中三个部分都可以省略,也可以写在外部,如果在for循环中不写任何形式,此时循环式是一个死循环
for(;;)
{
alert("1");
}
//打印1-100内所有奇数
for (var i=1;i<=100;i++)
{
if (i%2!=0) {
console.log("i");
}
}
练习:
(1)
for (var i = 100; i < 1000; i++) {
//判断百位
var b = parseInt(i / 100)
//获取十位的数字
var s = parseInt((i - b * 100) / 10);
//获取个位数字
var g = i % 10;
if (b*b * b+ s * s* s + g * g * g == i) {
console.log(i)
}
(2)
var num=prompt("请输入一个大于一的整数");
//判断这个值是否合法
if (num<=1) {
alert("error");
}
else{
//判断是否为质数
var flag=true;
for (var i=2;i<num;i++) {
if (num%i==0) {
flag=false;
}
}
}
if (flag) {
alert(num+"是质数!!!");
}else{
alert("这不是质数")
}
5、break和continue
– break 用于跳出一个循环体或者完全结束一个循环,不仅可以结束其所在的循环,还可结束其外层循环;
– continue 语句的作用是跳过本次循环体中剩下尚未执行的语句,立即进行下一次的循环条件判定,可以理解为只是中止(跳过)本次循环,接着开始下一次循环
//在程序执行前,开启计时器,
console.time()可以用来开启一个计时器,
//它需要一个字符串作为参数,这个字符串将会作为计时器的标识,
console.timeEnd()可以用来关闭一个计时器。