变量作用域+递归+简单对象+对象的数据类型+构造函数创建对象

变量作用域

           变量生效的范围

           全局作用域

                函数最外层定义的变量

           局部作用域

               函数体中定义的变量   

          变量使用规则

             访问规则

                在自己的作用域范围查找,如果自己的作用域没有,在上一级作用域查找,如果上级作用域没有,到全局作用域查找;

                全局作用域没有查找到,直接报错

        赋值规则

        作用域链

            变量访问或赋值时,

            先在自己的作用域查找,

            如果没找到,再一层一层向上查找,至到最外层全局作用域。

            这种层层查找关系,叫作用域链

递归

      函数体内又去调用自己,(自身调用自身). 这样的函数称为递归函数

        写递归函数时,避免死递归

           一定要有结束递归的条件

               return

         怎写结束递归的条件

          递归层层调用后,按原路层层返回

简单对象

       访问对象的属性和方法

            点语句访问

            对象名.属性名

            对象名.方法名()

       var obj = {

                属性名1:属性值1,

                属性名2:属性值2,

                  ...

                方法名1:function(){

                },

                方法名2:function(){

                }

            }

数据类型

          两大类:

            基本数据类型

                number  string    boolean  undefined  null   

                  100    'hello'  true

            复杂数据类型(对象类型|引用类型)

                Object              Array  ...

                简单对象类型          数组

内存结构图

       内存结构图

          基本数据类型变量 内存存储形式

                电脑: 内存

                    => 程序加载到内存中执行

          1. 内存两个区域

                => 栈区域

                => 堆区域


          2. - 基本数据类型变量存储在栈区域

              - 引用变量存储在栈区域

              - 对象存储在堆区域

构造和字面量

        语法:

          var obj = {} //字面量方式

          var obj = new Object() // 通过new语句调用构造函数方式创建对象

          obj.name = '小明'

          obj.age = 22

          obj.say = function(){

              //代码

          }

你可能感兴趣的:(变量作用域+递归+简单对象+对象的数据类型+构造函数创建对象)