JavaScript函数下

  作用域

          =>变量起作用的范围

          =>全局作用域和局部作用域

                局部作用域: 在函数体中作用范围

            var num =100

            funuction fn(){

                var num1=200 //局部作用域

                console.log('num1',num1)//输出num1 200

                console.log('num',num)// 输出num 100

            }

            console.log('num1',num1)//控制台报错,超出局部作用域

                 全局作用域: 整个js全局起作用

            console.log('num',num)//控制台输出 num 100

            fn()

            内层函数可以访问外层函数作用域变量

            外层函数不能访问内层函数作用域变量

            递归函数

            => 函数自身调用自身 这样的函数称为递归函数

            => 注意:要有递归结束的条件,也要有改变递归的条件代码

            递归函数的作用

                  递归可以解决

                        后面的结果由前面推导出来的,采用递归简化实现

            //1+2+3  求和

            function f(n){

                //结束的条件

                if(n==1){

                    return 1

                }

                return f(n-1)+n   //f(2)+3   f(1)+2   1

            }

            var sum=f(3)  //f(3)=f(2)+3+f(1)+2+1=6

        对象

          =>1.面向对线

          =>2.现实生活中的对象

                具体一个事物

                每种对象有自己的特征行为

          => 软件世界

                 对象  object

                 属性  方法

        创建对象

          var  jackobj= { }  // 创建了一个名为jackobj的空对象

          var  jackObj={

          name:'jack',   //姓名属性  =>name属性和jack属性值

          age:18         //年龄属性   =>age属性和18属性值

          sex:'男'       //性别属性

        }

        //输出格式

        console.log('name:',jackobj.name)

        //修改属性值

        obj.name=rose

        console.log('name',jackobj.name)//输出修改后的name属性值

        //删除属性

        delete obj.name   //删除name属性

        console.log(jackobj)//检查已是否删除该属性

        //添加属性

        jackobg.score=98    //添加score属性

        console.log(jackobj.score)

        //遍历对象属性  for-in 循环

        for (var key in jackobj){

            // 1. key='name'  2.key='age'  3. key='sex'

            console.log('key',key)

            console.log('key',key,'value',jackobj[key])

        }

        //访问属性值,属性值是变量的情况

        console.log('name:',jackobj.name)//属性值正常的情况

        var _name ='name'

        console,log(jackobg[_name])//属属性值是变量的情况

        数据类型

           var num =100 //number

           var name='jack' //string

           ...

           复杂数据类型

           var obj={name:'jack',age:18}

            obj  数据类型名 -> Object

        创建对象 new 语句

        字面量方式

        var obj={

            name:'jack'

        }//空对象

        构造函数方式

         var obj =new Object()//空对象

         var Object.name='jack'

         key/value -> 键/值对的集合

         数组 Array

         数组

         1.   作用:储存一系列有序数据的集合

         2.创建数组

              var arr= []  //创建空数组

              var arr=[1,2,3,4,'jack',true]

        3. 索引号(下标)

        4.访问数组元素

        5.数组长度(元素个数)

        6.遍历数组

        for

        7.创建数组方式

         构造函数

         var arr= new Array() 空数组

         字面量

         var arr=[]   空数组

            length  属性

            arr.length

           arr[0]

            1.创建数组

            var arr=[10,20,30,40]//0  1  2  3

            //2,访问数组数据

            console.log('arr[0]:',arr[0])

            //3.数组长度

            console.log('length>>:',arr.length)

            //4.遍历数组,表示数组索引量从0开始

            for(var i=0;i <arr.length;i++){

                console.log(arr[i])

            }

            //5.构建函数创建数组

            var arr1=new Array(100,200,300,400,500)

            for (var i=0;i<arr1.length;i++){

                console.log(arr1[i])

            }

            //6.创建数组只有一个元素,表示创建一个空数组,长度是5 length=5

            var arr2=new Array(5)

            console.log('arr2.length>>>',arr2.length){

                for(var i=0;i<arr2.length;i++){

                    console.log(arr2[i])

                }

            }

            //7.直接控制台打印

            console.log(arr)

        */

       /*

       访问规则

       var num=100

       function fun1(){

        var num1=200

        console.log('fun1 num',num)//输出fun1 num 100

        function fun2{

            var num2=300

            console.log('fun2 num',num)//输出fun2 num 100      上上级作用域找,直至全局作用域找

            console.log('fun2 num1',num1)//输出fun2 num1 200  上级作用域找

            console.log('fun2 num2',num2)//输出fun2 num2 300 当前作用域找

            console.log(num3)//  全局作用域找未找到直接报错

        }

        fun2()

       }

       fun1()

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值