函数定义,声明提前及相关题目

本文深入探讨了JavaScript中函数的定义与声明方法,包括函数定义表达式与声明语句的区别,强调了函数嵌套与声明提前的概念,并通过具体实例展示了return语句的作用及函数调用的注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

函数使用function关键字来定义, 它可以用在函数定义表达式或者函数声明语句。 两种形式中, 函数定义都从function关键字开始, 其后跟随这些组成部分:

  • 函数名称标识符
  • 一对圆括号。 其中包含由0个或多个逗号隔开的标识符组成的列表。 这些标识符是函数的参数名称, 它们就像函数体中的局部变量一样。
  • 一对花括号。 其中包含0条或多条JavaScript语句。 这些语句构成函数体: 一旦调用函数,就会执行这些语句。
函数定义表达式

函数定义表达式也可以称作“函数直接量”。 对函数定义表达式来说, 函数名称是可选的, 这个名字如果存在, 该名字只存在于函数体中, 并指代该函数对象本身。例:

 var fn = function(x) {return x * x;};
 var f = function f(x) {return x * x;};
函数声明语句

函数名称是函数声明语句必须的部分, 一条函数声明语句实际上声明了一个变量, 变量指向函数对象。

 function fn(x) {return x * x;}
声明提前

函数声明语句会被提前到脚本或函数的顶部。 使用var的时候,只有变量声明提前, 变量的初始化代码仍然在原来的位置。 然而使用函数声明语句, 函数名称和函数体均提前。 也就是说, 可以在声明一个函数之前调用它。

以表达式定义的函数就另当别论了, 要使用一个以表达式方式定义的函数, 必须把它赋值给一个变量, 然而就像上面说的, var 变量声明虽然可以提前, 但变量赋值是不会提前的, 所以, 以表达式方式定义的函数在定义之前无法调用。

return语句

多数函数包含一条return语句。 return语句导致函数停止执行, 并返回它的表达式(如果有的话)的值给调用者。如果return语句没有一个与之相关的表达式, 则返回undefined值。 如果一个函数不包含return语句, 那它执行函数体中每条语句, 并返回undefined给调用者。

函数嵌套

函数声明语句并非真正的语句,ECMAScript规范只允许它们作为顶级语句。 它们可以出现在全局代码, 或者嵌套在其他函数中, 但它们不能出现在循环、条件判断, 或者try/catch/finally以及width语句中。

函数定义表达式可以出现在JavaScript代码的任何地方。

相关题目

题1:

 alert(a in window);
 var a = 10;

题2:

 function f(){
     alert(1);
 }
 f();
 function f(){
     alert(10);
 }
 f();

题3:

 alert(a);
 var a = 1;
 function a() {}
 alert(a);

题4:

 var a = 1;
 var b = function a(){
     alert(a);
 };
 alert(a);
 b();

转载于:https://www.cnblogs.com/blackwood/p/3178050.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值