一、预解析
理解:
js代码的执行分为两个步骤
1、解析代码:①从所有代码中变量的定义和函数的定义;②将函数定义和变量定义提升到所有代码的最前面。
2、按照解析后的顺序执行代码
总结:
-
匿名函数赋值给变量的定义方式,预解析时遵循变量的预解析规则,不会将函数代码预解析
-
预解析的时候,会将定义提前放在内存中,不会提前将赋值放在内存中
-
如果变量名和函数名同名了,保留函数预解析,忽略变量预解析
因为函数预解析其实包含了赋值的过程,函数定义放在内存中的时候将函数的代码也放在内存中
变量的预解析只有空间,没有值,所以如果是先预解析变量,那后面的函数预解析赋值就将空间中放入了值,如果是先预解析的函数,再次预解析变量的时候,空间已经存在了,再次定义空间也是没有意义的。
-
省略var定义的变量是不会有预解析的
-
js代码如果报错了,那后面的代码就不会执行了
-
不会执行的代码中有变量或函数定义也会预解析,因为预解析在执行之前。
二、return总结:
- 终止代码继续运行
- 函数运行后返回一个结果,只能返回一个