Day04笔记
一、函数
1.函数的定义:
只是将一段代码保存在变量里面, 但是不会执行。
可以看成一个装代码的盒子。
2.为什么要使用函数:
在开发过程中, 一段代码在多个地方执行, 而且不连续执行 那我们怎么办?? 用函数。
3.函数的好处:
解决代码冗余的问题, 便于维护。
使用方便。
4.和循环的区别
=> 作用不一样:
循环 : 只能在同一个地方,重复执行同一段代码。
函数 : 可以在多个地方, 重复执行同一段代码。
=> 本质不一样:
循环 : 只是一种语法, 代表代码重复执行。
函数 : 是一种数据类型, 里面存储的是一段代码。
二、声明式函数
语法:
function 函数名(){
函数体/封装的代码;
}
三、赋值式函数
语法:
var 函数名 =function(){
函数体/封装的代码;
}
四、函数调用语句
语法:
函数名();
作用:
让函数里的代码执行。
特点:
=> 声明式函数使用函数调用语句
时,可以在声明函数之前,也可以在声明函数之后。
=>赋值式函数使用函数调用语句
时,只能在赋值函数后,若在赋值函数前,会报错。
=> 函数的每一次调用都是独立的。
=> 可以将函数调用语句
看成一个变量,函数中的return
会给函数调用语句
这个变量赋值。
五、形参
语法:
// 声明式
function 函数名(形参,形参){
函数体;
}
// 赋值式
var 函数名 = function(形参,形参){
函数体;
}
定义:
只能在此函数中使用的变量。
特点:
1.形参与实参是按照顺序一一对应的。
2.当形参数量 > 实参数量 => 多余的形参 = undefined。
3.当形参数量 < 实参数量 => 多余的实参无法在函数中使用。
六、实参
语法:
函数名(实参,实参);
定义:
写在在函数调用语句的括号中的常量。
七、return返回值/终断函数
返回值
1.return
关键字可以给函数一个值,若return
后没有接值,则函数的返回值是undefined。
2.return
返回的值,是赋给它的调用语句。
3.return
只能用在函数中,用在别的地方会报错。
终断函数
1.终止函数的执行, 并将指定的值返回给调用者。
2.作用和break
在循环中类似, 对于return
以后的函数体代码都不会执行。
八、函数的四种类型
1.无参数 无返回值 => 用得少 因为无参数无返回值 就是单纯执行一段代码
2.有参数 无返回值 => 用得少 只是在函数内部做一些运算, 输出数据
3.无参数 有返回值 => 用得少
4.有参数 有返回值 => 用的最多 根据外部传入的数据进行计算, 将运算结果返回给调用者
九、变量作用域
定义:
变量起作用的范围。
1.全局作用域:
=> 直接声明的变量。
=> 函数中未声明,直接赋值的变量(赋值规则)。
=> 在全局作用域中定义的变量可以在任何地方使用。
2.局部作用域:
=> 在js中只有函数生成局部作用域,别的都不行。
=> 函数行参只能在此函数内起作用。
=> 函数体内声明的变量只能在函数内起作用。
十、变量使用规则
访问规则(作用域的查找机制)
作用域的查找机制只能是向上查找,不能向下找。
1.首先,在自己的作用域内部查找,如果有,就直接拿来使用。
2.如果没有,就去上一级作用域查找,如果有,就拿来使用。
3.如果没有,就继续去上一级作用域查找,依次类推。
4.如果一直到全局作用域都没有这个变量,那么就会直接报错(该变量 is not defined)。
赋值规则
当你想给一个变量赋值的时候,那么就先要找到这个变量,再给他赋值
1.先在自己作用域内部查找,有就直接赋值。
2.没有就去上一级作用域内部查找,有就直接赋值。
3.如果没有,就继续去上一级作用域查找,依次类推。
4.如果一直找到全局作用域都没有,那么就把这个变量定义为全局变量,在给他赋值。
十一、length函数
定义:
用来获取string的长度,转成number的类型,也只能获取string的长度,其余类型为undefined。
语法:
变量.length;