- 、for循环
for循环与while循环等效
语法:
for(1.初始化循环变量;2.循环条件;3.迭代修改循环变量){
4.循环体;
}
1->2->4->3->2->4->3
while(循环条件){
迭代修改循环变量;
循环体;
}
案例一
案例二
注意:如果要输入迭代次数时注意for语句的流程
for(1.初始化循环变量;2.循环条件;3.迭代修改循环变量){
4.循环体;
}
- >2->4->3->2->4->3
即在进行判定前已经进行叠加1次,所以需要输出迭代次数时需要-1
案例三
- 、function定义
函数:程序中封装一项专门任务的步骤清单代码段
语法:
function 函数名([参数变量列表]){
任务步骤代码段;
[return 返回值;]
}
函数名(任务名):指向函数定义的一个变量,保存的是*函数对象的引用*
声明的时候:不执行,同时也不读取内部代码
在程序的任意位置:函数名([参数值列表]);
函数调用时:才开始读取内部代码,并执行
案例一
- 、变量的作用域
一)、 变量作用域:一个变量的可用范围
2种:
1. 全局作用域 - window
全局变量 - 放在全局作用域里的变量
可在程序的任意位置进行访问并修改
2. 局部作用域:在函数调用的时候才会动态创建的作用域
局部变量:2种
1. 参数变量
2. 在函数中var出来的变量
***仅在函数调用时,动态创建
并且使用变量的规则是:如果局部有,就不用全局的
***调用后,局部变量会伴随着局部作用域一同销毁!
案例一
二)、声明提前:正式开始执行程序之前,都会先将var声明的变量,和function声明的函数,提前到当前作用域的顶部,集中声明,同时赋值留在本地
注意:函数的声明比变量的声明更置顶
function rose(){} // 声明方式声明函数
var fun=function(){} // 直接量方式声明函数
function fun(){
console.log(1);
}
fun(); // 1 函数rose中输出的1
function fun(){
console.log(2);
}
fun(); // 2 函数fun 中输出的2
var fun=100; // fun还是函数吗? fun没有()故为全全局变量
fun(); // 注意:变量名() 是函数调用的专用语法,但是此时的fun还是函数吗?
// 此时的fun不再是函数的引用了!就不能使用()调用,会报错!
// fun is not a function
- 、作业解释
作业1:年利率为3%,本金10000,问几年后本金超过12000;
作业2(选做): 输入任意年份,输出从该年起,之后的5个闰年
作业3:把上述代码的推理过程,以注释的形式写出来
注意最后一点;在函数中未定义(var)变量的新值,所以在调用的函数后,改变了全局函数