代码块
一对{}就是一个代码块
代码块中使用let声明的变量,在代码块外部无法访问,使用var声明的变量没有块作用域,在代码块外部也可以访问
流程控制语句
条件判断语句
语法:
if(条件表达式){
语句
}
if(条件表达式){
语句
}else{
语句
}
if(条件表达式){
语句
}else if(条件表达式){
语句
}else if(条件表达式){
语句
}else{
语句
}
prompt()函数
用来获取用户输入的内容,该函数的返回值类型总是一个字符串
let num = prompt('请输入');
练习:编写一个程序,检查任意一个年份是否是闰年,如果一个年份可以被4整除不能被100整除,或者被400整除,这个年份就是闰年
let year = +prompt('请输入一个年份:');//+把输入的字符串转换为number
if((year % 4 ===0 && year % 100 !==0)|| year % 400 === 0){
alert('${year}是闰年');
}else{
alert('${year}是平年');
}
isNaN()函数
判断是否是 合法数字
switch语句
switch(条件表达式){
case 表达式 :
语句
break;
case 表达式 :
语句
break;
case 表达式 :
语句
break;
default:
语句
break;
}
执行时,会自上而下依次将switch后的条件表达式和case后的表达式进行全等
如果全等,则自当前case处开始向下执行代码,即使代码在其他的case下,也会被执行,如果不希望执行其他case后的代码,可以在case后break,break可以结束switch语句;如果所有的比较都不成立,都是false则从default开始执行
不全等,则继续向下比较,直到找到全等
while语句
while(条件表达式){
}
do{
语句
}while(条件表达式)
do-while:先执行循环体,执行完毕再对条件表达式进行求值判断
如果false,语句结束
如果true,继续执行循环体
let i = 0;
while(i < 5){
console.log(i);
i++;//更新 i 的值
}
for循环
for(初始化表达式;条件表达式;更新表达式){
语句
}
for(let i = 0; i <5; i++){
语句
}
for循环执行流程:
1、先执行初始化语句,初始化一个变量
2、执行条件表达式,判断循环是否执行
如果false,则循环结束
如果true,则执行循环体
3、执行更新表达式对变量进行更新
4、重复第二步
for(;;){
语句;// 死循环
}
绘图
//创建一个循环来控制图形的高度
for(let i=0; i<5; i++){
//创建一个内层循环来控制图形的宽度
for(let j=0; j<5; j++){
document.write('*')
}
document.write('<br>')
}
//外层循环每执行一次,内层循环执行一圈。所以上面的程序执行25次
for(let i=0; i<5; i++){
console.log('外层循环:',i);
for(let j=0; j<5; j++){
console.log('内层循环',j);
}
}
//*
//**
//***
//****
//*****
for(let i=0; i<5; i++){
//创建一个内层循环来控制图形的宽度
for(let j=0; j<i+1; j++){
document.write('*')
}
document.write('<br>')
}
质数的判断:
let num;
let flag;//flag记录检查的状态,默认num是质数
for(let i = 2;i<num;i++){
if(num % i === 0){
flag = false;//不是质数
}
}
if(flag){
alert('${num}是质数');
}else{
alert('${num}不是质数');
}
九九乘法表
for(let i=1; i<=9; i++){
for(let j=1; j<i+1; j++){
document.write('${j}×${i}=${j*i} ');
}
document.write();
}
break continue
break可以结束switch和循环语句
for(let i=0; i<5; i++){
if(i === 2){
break;//结束for循环
}
console.log(i);//0 1
}
for(let i=0; i<5; i++){
console.log('外层循环:',i);
for(let j=0; j<5; j++){
console.log('内层循环',j);
break;// 只会影响离它最近的循环
}
}
continue用来跳过当次循环,也是 只会影响离它最近的循环
for(let i=0; i<5; i++){
if(i === 2){
continue;
}
console.log(i);//0 1 3 4
}