思维导图在第一章,有需要的小伙伴可以去看下。有任何疑问也可以随时练习我。
函数介绍
-
函数:复杂的数据类型
-
函数的作用:存储代码,解决代码复用问题
-
函数的使用:
声明函数 和 调用函数 // 1.声明函数 function 函数名(){ 函数体; } // 2.调用函数 函数名();
注意:
1.function 声明函数的关键字 全部小写
2.函数是做某件事情 , 函数名一般是动词 sayHi
3.函数不能调用自己不执行
4.调用函数的时候千万不要忘记加小括号
- 函数的封装:是把一个或者多个功能通过函数的方式封装起来,对外只提供一个简单地函数接口。
函数的参数
-
参数的主要作用:在函数的内部某些值不能固定, 我们可以通过参数在调用函数时传递不同的值进去。
函数名(实参1 , 实参2...); //在函数调用的小括号里面是实参(实际的参数) // 1.行参和实参的执行过程 function cook(aru){ //aru形参 形参是接受实参的 形参类似于变量 console.log(aru); } cook('酸辣土豆丝'); //实参
- 函数传参原理:实参给形参赋值
- 函数传参是按照顺序一一赋值
- 每次调用传参过程都是独立的,互不影响
函数的实参和形参数量可以不一致
- 函数传参原理:实参给形参赋值
-
逻辑短路(逻辑中断)
① 当有多个表达式(值)时,左边的表达式值可以确定结果时,就不在 继续运算右边的表达式的值。
(3) 逻辑与
① 语法:表达式1&&表达式2
② 如果第一个表达式的值为真,则返回表达式2
③ 如果第一个表达式的值为假,则返回表达式1
/* 1.用我们的布尔值参加的逻辑运算 ture &&false == false
2.123 && 456 是值 或者是 表达式 参与逻辑运算?
3.逻辑与短路运算 如果表达式1 结果为真 则返回表达式2
4.如果表达式1为假,那么返回表达式1 */
console.log(123 && 456); //456
console.log(0 && 456); //0
console.log('' && 1 + 2 && 456 * 56789); //''
// 如果有空的或者否定的为假 其余是真的 0 '' null undefined NaN
(4)逻辑或
① 语法:表达式1||表达式2
② 如果第一个表达式的值为真,则返回表达式1
③ 如果第一个表达式的值为假,则返回表达式2
// 5.逻辑或短路运算 如果表达式1 结果为真 则返回的是表达式1 如果表达式1结果为假,则返回表达式2
console.log(123 || 456); //123
console.log(123 || 456 || 456 + 123); //123
console.log(0 || 456 || 456 + 123); //456
// 逻辑中断很重要 他会影响我们程序运行的结果思密达
var num = 0;
console.log(123 || num++); //123
console.log(num); //0
```
函数(return)语句
-
函数的返回值格式
/* 1.函数的返回值格式 function 函数名(){ return 需要返回的节结果; }
注意点:
-
return关键字后面的代码不会执行(return可以结束函数体,类似于循环中的break)
-
如果函数没有返回值,则得到的是undefined(函数默认返回值是undefine)
没有返回值的情况:
a:没有写return
b:写了return但是return后面没有值
-
-
break:结束当前的循环体;
continue:跳出本次循环,继续执行下次循环(如for、while)
return:不仅可以跳出循环,还可以返回return语句中的值,同事还可以结束当前函数内 的代码。
-
开关思想:判断数组中是否所有的元素都满足条件
- 声明开关币变量:一般默认值为true
- 遍历数组,检查每一个元素是否满足条件,如果不满足,就修改开关为false
- 获取开关变量的值
变量作用域
- js变量作用域: 变量可以使用的区域
* 作用:避免变量污染(变量名相同导致代码冲突)
-
js三种作用域:
2.1 全局作用域(全局变量) : 在函数外面let的变量,可以在任何地方使用
2.2 局部作用域(局部变量) : 在函数里面let的变量,只能在函数内部使用
2.3 块级作用域(快级变量) : 在分支或循环大括号中let的变量(一般为循环使用)
-
作用域链:
内部函数访问外部函数的变量 , 采取的是链式查找的方式来决定取那个值 这种结 构我们称为作用域链 就近原则