码迷,mamicode.com
首页 > 其他好文 > 详细

22.函数预解析、变量与函数优先问题

时间:2020-03-17 19:49:48      阅读:54      评论:0      收藏:0      [点我收藏+]

标签:turn   调用函数   执行   函数表达式   变量   优先   优先级   16px   表达式   

一:预解析:

1.变量预解析   即在变量声明之前使用变量

2.函数声明预解析: 在函数声明之前调用

          技术图片 11   技术图片技术图片 预解析,解析的是声明而非赋值

 

 

 函数的预解析可以执行函数体,变量的预解析不会给变量赋值

 

  3函数表达式不会预解析:只会提升变量,不提升函数(提升指:可被预解析)

    技术图片技术图片

 

              技术图片技术图片haha被提升,但是只针对变量 ,只解析了 var haha;

 

二:变量与函数优先的问题:

预解析阶段:函数优先级 >  变量

解析完:       变量优先级 > 函数优先级

技术图片技术图片           技术图片技术图片

技术图片技术图片  函数的预解析可以执行函数体,变量的预解析不会给变量赋值

 

 三;函数的自执行:IIFE (immediately-invoked-function-expression 立即调用的函数表达式)

                      
 
        1. 使用 +    -    号,自执行默认返回值为undefined  并在函数代码块之后()

技术图片  技术图片

 

 

技术图片技术图片

 

 

技术图片 注意 console.log里调用函数,会先执行一遍函数,然后打印函数return值。

 

 

              2.使用~   ,自执行默认返回值为 -1

技术图片技术图片

 

 

             3.函数体外部套()可自执行,return的默认值为undefined

 

技术图片

 

 

 

 

 

 

            4.使用 *     /  不能自执行,会报错

 

技术图片技术图片

 

 

           5.函数自执行的应用场景: 匿名函数常用自执行,

 

技术图片

 

 

 注意函数的return可以是函数:

 

技术图片

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

                            

 

  

 

22.函数预解析、变量与函数优先问题

标签:turn   调用函数   执行   函数表达式   变量   优先   优先级   16px   表达式   

原文地址:https://www.cnblogs.com/yzdwd/p/12512561.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!