循环 循环条件 循环体
while(循环条件) { 循环体 }
do { 循环条件 } while(循环条件);
for(初始值; 循环条件; 增量) { 循环体; }
isNaN(); 是否为 NaN
break/continue;
var i = 0, sum = 0; do { i++; if(i%2===0) continue; if(i%5===0) break; sum+=i; } while(i<10); console.log(sum); // 4
(1) 创建一个普通函数 ```javascript function 函数名() { 函数体 //要封装的代码 } ``` 调用 函数名称(); 练习: 创建函数, 封装两个数字相加的和, 调用多次 练习: 创建函数, 封装计算 1~100 之间所有整数的和并打印, 调用多次 (2) 创建带有参数的函数 ```javascript function 函数名称(参数列表) { 函数体; } ``` 调用: 函数名称(参数列表) //实际传递的数据 参数: 创建时的参数称为形参, 调用时参数称为实参, 实参会赋值给形参, 多个参数之间使用 逗号隔开.参数的个数 又 0 个 或者多个, 如果形参未被赋值, 值为 undefined 练习: 创建函数, 封装计算 1~任意数字之间所有整数的和, 调用多次 练习: 创建函数封装计算任意两个年份之间闰年的个数, 调用多次 (3) 创建带有返回值的函数 ```javascript function 函数名(参数列表) { 函数体; return 值; //返回值, 函数执行完毕返回的结果 } ``` 注意事项: 如果函数中没有 return, 或者 return 中没有加任何的值, 返回 undefined; 执行完 return 后的代码不会再执行 练习: 创建函数, 传递两个参数, 返回任意两个数字的最大值 练习: 创建函数, 传递三个参数, 返回任意三个数字的最大值 练习:创建一个函数,传递订单的状态码,返回对应的汉字状态 1-待付款 2-代发货 3-运输中 4-已签收 5-已取消 其他-无法追踪 对比 break; 和 return; 的用法 break; 用于结束 switch 语句, 还可以用于提前结束循环; return; 用于函数中返回值, 可以结束函数后续代码执行 练习:创建一个函数,传递任意一个年份,返回是否为闰年 是 -> true 不是 -> false 练习:创建函数,传递任意一个年份,如果是闰年返回 366,否则反返回 365 练习:计算1~任意数字之间所有整数阶乘的和 1~5 1! + 2! + 3! + 4! + 5! 步骤一: 计算任意数字的阶乘 n~1
(1)变量提升 JS 程序在执行前,会将使用 var 声明的变量提升到**所在作用域的最前边**,但是赋值会在原来的位置 (2) 函数的作用域 函数的可访问范围,在全局作用域下创建的函数可以在任意位置访问; 在函数作用域下创建的函数只能在函数作用域下访问。 (3) 函数提升 和变量提升一样,JS程序执行前,会把 function 关键字创建的函数 提升到所在作用域的最前边, 在调用的时候才会执行函数体中的代码 闭包