JavaScript从入门到精通 纯笔记(day04)--函数1 - 代码工厂 - IT编程入门网 - 码工厂

JavaScript从入门到精通 纯笔记(day04)--函数1

一、函数

1、函数概述
        实际上就是多行代码的抽取(多行代码会构成特定的功能)

2、、函数的优点
        减少冗余代码(重复的代码放在函数里来封装起来)

        提高了代码的可维护性以及可阅读性

3、函数分类
        系统函数    window里面的所有函数都属于系统函数(console.log(),alert())

        内置函数    所有的内置对象里面的函数都叫内置函数(Math.pow()...)

        自定义函数    自己定义的函数

注:内置和系统函数更关注使用,而自定义函数关注定义以及使用

4、自定义函数的定义以及调用
        1)、使用function关键词定义匿名函数(没有名字的函数)

            例:

                    function(){

                                consolo.log(' ')

                        }

        注:匿名函数直接调用,让其他事件去自动调用,声明比较少,没有复用价值

                    自执行函数:

                        (function(){

                                console.log(' ')

                            }()

                注:自执行函数不能传参,函数调用后面带(),自执行的匿名函数,没有复用价值,只能用一次

        2)、使用function关键词定义具名函数(有名字的函数)

                 第一种:   function 函数名(形参1,形参2....){

                                函数体(代码块)

                    }

                    变种的具名函数:

                  第二种:  var     函数名 = function(){

                                代码块

                    }

                    注:对于调用速度来说,第一种更快,因为function和var在预解析阶段就会声                                                                  明,而var关键词修饰的变量在预解析阶段是不会赋值的

        3)、使用new Function声明(new后面的Function首字母一定要大写)

                var    函数名    =    new    Function('    形参1,形参2....    '    '    函数内容题    ')

                预解析:
                        预解析会做的事情:1、它会在声明对应function和var关键词修饰的变量开辟内存

                                                         2、对应的function的内存空间开辟以后它会将对应的代码块放在里面,等待调用

                                                         3、var修饰的关键词,只会开辟一个空间,并不会进行复制(默认undefined)

return关键词
return返回对应的数据,调用return后,后面的内容将不再执行,如果没有return,默认返回undefined

函数执行过程
1、方法栈:也称执行栈,是吧对应开辟的function内存里面的代码块丢给他去执行

2、执行栈会自动去执行对应的方法,执行完返回对应结果

作用域
当前一个变量的作用范围,分为局部,全局作用域

1.局部变量:位于某一个代码里面,称为局部变量,不能被全局访问(解决:变量提升为全局变量)

2、作用域链:先往同级的地方找,找不到向上面找,一直找到为止

注:如果外面没有声明变量,找不到变量就会报错

3、局部作用域:在一个函数内声明的或者在一段代码块内声明的,作用范围是当前的代码块

4、全局作用域:在对应的全局声明的,作用范围是全局

评论已关闭