复习
循环 循环条件 循环体
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
函数和对象
- 函数
isNaN(数据) | parseInt() | parseFloat()…
函数分为: 系统函数 和 自定义函数
function: 功能体,函数(方法), 可以接受若干个数据, 返回处理的结果.
用于封装反复执行的代代码
(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
- 作用域
变量或函数的可访问范围,分为两种
全局作用域:在全局使用 var 声明的变量,可以在任意的范围访问到
函数作用域:在函数使用 var 声明 的变量, 只能在函数内部可以访问到
注意事项:
在函数内不使用 var 声明的变量,是全局变量,可以在函数外部访问————不推荐使用
(1)变量提升
JS 程序在执行前,会将使用 var 声明的变量提升到**所在作用域的最前边**,但是赋值会在原来的位置
(2) 函数的作用域
函数的可访问范围,在全局作用域下创建的函数可以在任意位置访问;
在函数作用域下创建的函数只能在函数作用域下访问。
(3) 函数提升
和变量提升一样,JS程序执行前,会把 function 关键字创建的函数
提升到所在作用域的最前边, 在调用的时候才会执行函数体中的代码
闭包
任务
- 整理思维导图
- 练习
(1) 斐波那契数列(使用循环, 结合函数,计算斐波那契数列 的第n项)
1 1 2 3 5 8 12 21 34…