22.函数预解析变量与函数优先问题
Posted yzdwd
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了22.函数预解析变量与函数优先问题相关的知识,希望对你有一定的参考价值。
一:预解析:
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.函数预解析变量与函数优先问题的主要内容,如果未能解决你的问题,请参考以下文章
0143 JavaScript预解析:概念变量预解析函数预解析函数表达式声明函数问题
25.函数例题-预解析 作用域 函数变量优先级全局变量污染(直接在全局声明 函数里的变量没声明)但是函数里的变量没声明造成的全局变量污染有个前提,函数要被调用)