函数的返回值
函数功能的单一性:函数只做业务处理,并不会对结果进行处理
它会将 结果返回,让调用者进行处理
通过return关键字可以实现方法的返回值
说明
1.不是每个函数都都会手动返回值
2.如果一个函数没有返回值,默认也会返回undefined,所以后期如果你调用一个函数,返回值是undefined,要么你手动返回undefined,要么就是没有手动返回值
3.默认情况下,函数只能返回一个值(变量),如果想返回多个值,一般可以使用一个结构(对象)进行包装,如果直接返回多个值,最终也会返回最后一个值
4.return有两种常用的功能:返回值 结束当前函数
5.return只能写在函数中,写在函数外部会报错: Illegal非法的 return返回 statement语句
作用域
// 一:全局作用域 -- 全局变量
// 如果没有声明这个变量,报错 age is not defined:age 没有定义
// Cannot access 'age' before initialization:不能在初始化之前访问age
// console.log(age)
//在scripts标签中直接声明的变量,就有全局作用域:因为它在整个script标签中都可以用
// let age = 20
// 二:局部作用域:也叫函数作用域 -- 局部变量
// 在函数内部声明的变量,在函数外部不能使用(形参相当于函数的局部变量)
// function test() {
// let age = 20
// }
// test()
// console.log(age)
// 三:块级作用域 -- 块级变量
// 块:就是指{ }
// let 会有块级作用域:它的作用域是:
// 1.作用域:let变量所在的{}结构
// 2.有效作用域:从定义这个变量开始,到这个变量所在结构的}结束
// if (true) {
// console.log(age) // Cannot access 'age' before initialization
// let age = 20
// // console.log(age) // 20
// }
// console.log(age) // age is not defined
// 如果一个就是没有使用let声明,而是直接使用,相当于定义一个真正意义的全局变量,它会将这个变量挂载到window全局,页面不关闭,变量不释放,严重的会造成全局污染
// let不会挂载到全局的window,循环执行完毕之后,会由js垃圾回收机制自动回收,节流性能