函数:函数,是可以通过名称来引用,并且就像自包含了一个微型程序的代码块。
1. 函数的三要素:函数的功能,函数的参数,以及函数的返回值。
2. DRY原则:所谓DRY原则,全称为Don't repeat yourself,翻译成中文就是不要重复你自己。什么意思呢?也就是说一个程序的每个部分只被编写一次,这样做可以避免重复,不需要保持多个代码段的更新和重复。
3. 字面量声明函数:
function 函数名(形式参数){
//函数体
}
函数名:就是我们调用函数时需要书写的标识符
形式参数:简称形参,是调用函数时需要接收的参数
实际参数:简称实参,是调用函数时实际传递过去的参数
4. 函数表达式声明函数
Let 变量=function(){
//函数体
}
这里的变量并不是该函数的名字,一般来讲,都是将一个匿名函数赋值给一个变量,通过这个变量来对函数进行调用。
5. 构造器声明函数
Let变量=new Function(“name”,”console.log(‘Hello,’+name)”);
Test(“xiejie”);//Hello,xiejie
不建议使用,因为需要解析两次代码,效率低。
6. 函数的调用: 如果要调用函数,那么就必须要有括号。这个括号要么在函数名后面,要么在变量名后面,这样才能够将调用函数后的执行结果返回。如果缺少了括号,那就只是引用函数本身。
示例:
Let test=function(){
Console.log(“Hello”);
}
Let i=test;//没有调用函数,而是test函数赋值给了i
i();//Hello
7. 函数的返回值:return,代表要从函数体内部返回给外部的值,即使不写,函数本身也会有返回值undefined。
需要注意的是,return后面的代码是不会执行的。
8. 函数的参数: 函数的参数可以分为两种,一种是实际参数,另外一种是形式参数。
)1 形式参数: 形式参数简称形参,它就是一种变量,但是这种变量只能被函数体内的语句使用,并在函数调用时被赋值。JavaScript中的形参的声明是不需要添加关键字的,如果加上关键字反而会报错。
关键点:参数名可以重复,同名只取最后一个参数值。
即使函数声明了参数,调用时也可以不传递参数值
调用函数时可以传递若干个参数值给函数,而不用管函数声明时有几个参数
)2 arguments:伪数组对象,本质是对象,但是因为键是从0开始,类似数组的下标,同时能使用部分数组功能。
9. 不定参数: 在最后一个形式参数前面添加3个点,会将所有的实参放入到一个数组里面。需要注意的是,不定参数都是放在形式参数的最后面,如果不是放在最后,则会报错。
- 函数的属性和方法
)1 name属性:表示函数的函数名
)2 length属性:表示形式参数的个数
- 箭头函数: 其最大的特点在于不需要function关键字,取而代之的是使用一个=>来进行表示。
表示方法:
//如果没有参数
Let 变量 =()=>{
//函数体
}
//如果只有一个形参
Let 变量 =形参=>{
//函数体
}
//如果函数体只有一个返回值
Let 变量 =形参=> expression
这种函数的优点是:
●比普通函数声明更简洁
●只有一个形参就不需要用括号括起来
●如果函数体只有一行,就不需要放到一个块中
●如果return语句是函数体内唯一的语句, 就不需要return关键字
●不会把自己的this值绑定到函数上
12.作用域
)1 全局作用域:这个是默认的代码运行环境,一旦代码被载入,引擎最先进入的就是这个环境。
)2 函数作用域:当进入到一个函数的时候,就会产生一个函数作用域
)3 eval作用域:当调用eval0函数的时候,就会产生-个eval作用域