1. 函数声明与函数表达式
解析器在像执行环境中加载数据时,会先读取函数声明,并使其在执行任何代码之前都可以访问,对于函数表达式,必须等到解析器执行到它所在的代码行,才会真正被执行。
例:
alert(sum(10,10)); function sum(n,m){ return n + m; }
以上代码可以正常运行,因为解析器通过函数声明提升的过程,读取并将函数声明添加到执行环境中。
而当使用函数表达式时:
alert(sum(10,10)); var sum = function (n,m){ return n + m; }
程序在执行到函数所在的语句之前,变量sum中不会保存对函数的引用,而且第一句话就会导致 "unexpect identifier"(意外标识符)错误,并不会继续执行。
除了什么时候可以通过变量访问函数之外,函数声明与函数表达式的语法其实是等价的。
时间: 2024-09-30 08:04:28