getting-started-with-javascript icon indicating copy to clipboard operation
getting-started-with-javascript copied to clipboard

《Javascript权威指南》:function对于整个脚本可见还是函数可见?

Open zjutszl opened this issue 8 years ago • 2 comments

问题1: 函数声明语句: var f = function(x) { return x+1; } 函数定义表达式:function f(x) {return x+1; } 那么。函数定义表达式是否算是语句呢?

答:ECMAScript标准规范并没有将函数声明归类为真正的语句。(写问题的过程中自己(好像)解决了:)

问题2:function f(x){return x +1;} 这个语句如果出现在函数中,那么它是整个脚本可见(全局可见)还是函数可见(局部可见)? 换句话说,是否function无论出现在哪,它都是全局可见?

zjutszl avatar Aug 18 '17 12:08 zjutszl

你可以用变量的定义去推敲,就能举一反三的去理解。

先定义赋值,再使用(对)

var name = 'xiaoming';
console.log(name);

先使用,在定义(错)

console.log(name);
var name = 'xiaoming';

函数表达式定义法,也是一种表达式赋值给变量的过程。所以道理是一样的。

xugy0926 avatar Aug 18 '17 16:08 xugy0926

补充:一般情况下,函数表达式定义法定义的变量叫函数变量。通过语法定义的名字叫函数名。

xugy0926 avatar Aug 18 '17 16:08 xugy0926