js中变量和函数提升

js代码并不是页面加载时就完全的从第一行开始逐步执行并解析
而是开始执行之前 先进入预解析阶段
在预解析阶段 把使用var和function创建的变量 进行提升 目的时为了更方便使用数据


变量提升规则:
预解析阶段会把var声明的变量进行提升 提升到对应作用域的第一行
变量只提升变量名 不提升赋值
变量提前调用 值为undefined
(全局变量提升到全局第一行 局部变量提升到局部第一行)


函数提升规则
预解析阶段会把function声明的函数 进行提升 提升到当前作用域的第一行 函数提升会提升整个函数 函数的调用不提升

小总结:
函数不调用不执行
函数名就代表了这个函数体 代表了整个函数
就近原则: 如果内部有就不去外部找
两个不嵌套的平级的函数可以使用相同的参数名


匿名函数:
    不带函数名字 只有函数声明
    function(){}
    意义:
        作为值存在,给其他变量赋值或者作为参数和返回值使用

函数本身也是一种数据类型(算是引用数据类型的一种)
        基本数据类型:
            number Boolean String null undefined
            Number Boolean String Object undefined(typeof检测出来的数据类型)
            function fun(){

            }
            console.log(typeof fun);//function类型

递归函数:
    就是函数自己调用自己
    如果没有限定条件 会导致浏览器卡死
    所以递归必不可少的就是结束的条件

回调函数:
    函数作为参数传给另一个函数
    在另一个函数内部 接收到参数的回调本身
    然后另一个函数内执行这个回调函数的使用

回调函数的使用:
    function js(a,b,callback){
        callback(a,b)
    }
    function add(x,y){
        console.log(x+y);
    }
    function jian(x,y){
        console.log(x-y);
    }
    js(12,6,jian)
    js(12,6,add)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值