作用域+递归函数+对象+事件

217 阅读2分钟

作用域

作用域分两种:
    全局作用域:
        全局函数和全局变量
    函数作用域:
        局部变量和局部函数
    注意:
        局部可以使用全局的,但是全局不能使用局部的,优先使用局部的,局部没有找全局,全局没有的话就报错
        千万不要在函数中对着未声明的变量赋值 -- 会导致全局污染:全局本身没有这个东西,但是函数作用域却给他添上了  
        如果局部a=2,而局部没有声明a 全局也没有声明a 那么调用局部函数的话 在全局输出的话,这个时候就被污染了 所以输出的值是2

递归

语法:
    function 函数名(形参){
        判断条件
        要反复执行调用的代码段  函数名(条件)
    }
    var 变量名=函数名(实参)
    console.log(变量名)
    
    理解:
        其实简单来说递归就是在函数中再一次调用了函数自己,但是迟早会停止下来
    何时使用:
        专门用于遍历层级不明确的情况
    可以简单的举例为:
        进->->->->->->判断条件(成立)出->->->->->

对象

对象:是一种比较复杂的对象 因为其他数据都是一个内存,存储一个数字,而对象是一个内存空间存储多个数据
定义对象,就相当于在内存中开辟空间,将这个空间划分为多个小空间,每个小空间都有自己的名字
语法:
    var 对象名={键值对,键值对,.....}
 注意:
     对象中的键是唯一的,不可以重复的
 遍历对象就是将对象中的每个键值对都经历一次
 语法:
     for(var 变量 in 对象){
         变量 -- 代表对象中的每个键
     }
 注意:当使用变量代表键的时候,不能使用 . 的语法了

事件

事件指用户在网页的行为
语法:
        标签名.on事件类型=函数的值


 事件类型:
         鼠标左键单击 - click            
         鼠标左键双击 - dblclick         
         鼠标移入事件 - mouseover        
         鼠标移出事件 - mouseout                                
         键盘按下 - keydown - 通常在项目中不用 
         键盘弹起 - keyup - 用的比较多                              
         获取焦点 - focus              
         失去焦点 - blur               
         改变事件 - change             
         提交事件 - submit                                      
         针对整个浏览器的加载事件 - load