JavaScript基础知识总结-函数篇

454 阅读3分钟

1.函数是什么? 为什么需要函数?

函数可以把具有相同或相似逻辑的代码“包裹”起来,通过函数调用执行这些被“包裹”的代码逻辑,这么做的优势是有利于精简代码方便复用
说人话:一段被重复利用的代码块 

为什么需要函数?
可以实现代码复用,提高开发效率

2. 声明(定义)

声明(定义)一个完整函数包括关键字、函数名、形式参数、函数体、返回值5个部分 function.jpg

3.函数的基本使用

function 函数名() {
函数体
}

使用函数:  函数名()

注意点:函数不调用不执行, 调用一次就会被执行一次,可以执行N次

4.函数的传参

通过向函数传递参数,可以让函数更加灵活多变,参数可以理解成是一个变量。

形参的含义: 在函数后面小括号里面 申明的变量而已
实参的含义: 在调用函数,往这个函数里面传递的具体的数据

5.函数的返回值

 //在函数里面通过需要将计算的结果.给到函数的调用者, 我们就使用return 数据
        function getSum(num1, num2) {
            const arr = num1 + num2
  //在函数体中使用return 关键字能将内部的执行结果交给函数外部使用
            return arr
        }
        //返给调用者 定义一个变量接收
        const sum = getSum(10, 20)
        console.log(sum);
        
为什么要有返回值?
  函数执行后得到结果,对执行结果的扩展性更高,可以让其他的程序使用这个结果
  

注意点:
1. 在函数体中使用return 关键字能将内部的执行结果交给函数外部使用
2. 函数内部只能出现1return,并且 return 下一行代码不会再被执行,所以return 后面的数据不要换行写
3. return会立即结束当前函数
4. 函数可以没有return,这种情况默认返回值为 undefined

6.函数的作用域

什么是作用域: 在可用的代码范围内
作用域的作用:提高了程序逻辑的局部性,增强了程序的可靠性,减少了名字冲突。
作用域分为三种:
1.全局作用域 :script标签
2.局部作用域 :在函数内部
3.块级作用域 :比如if语句 循环语句 

注意点 :变量有一个坑, 特殊情况
如果函数内部,变量没有声明,直接赋值,也当全局变量看,但是强烈不推荐
但是有一种情况,函数内部的形参可以看做是局部变量
 function sum() {
            //给局部变量赋值
            v1 = 10
        }
        sum()
        console.log(v1)

7.变量的访问规则

就近原则 

在能够访问到的情况下先局部,局部没有在找全局

8.匿名函数和具名函数

具名函数: function fn(){
    
}
//调用
fn()

匿名函数: function () {}
 // 1. 函数表达式
  // let fn = function(num) {
        //     console.log(num);
        // }
        // fn(10)
将匿名函数赋值给一个变量,并且通过变量名称进行调用 我们将这个称为函数
表达式

// 2.立即执行函数
(function(){ }() )

1. 立即执行函数有什么作用: 避免全局变量之间的污染
2. 立即执行函数需要调用吗? 有什么注意事项呢?
   无需调用,立即执行,其实本质已经调用了
   多个立即执行函数之间用分号隔开

9.逻辑与或短路运算规则

&& 逻辑与    ||逻辑或


逻辑与短路运算规则: 
  1.如果符号左边为false,符号右边就不执行了, 则会得到左边的
  2.如果符号左边的为trun,符号右边的就要继续执行,则会得到右边的

逻辑或短路运算规则: 
  1.如果符号左边的为false,符号右边要继续执行,则会得到右边的
  2.如果符号左边的为true,符号右边就不执行了,则会得到左边的