js statement2(js语句)

function 语句

A function definition creates a new function object and stores that object in a newly created property named funcname.(翻译:函数定义创建了一个新的function对象,并且把这个对象储存在一个新创建的名为funcname 的属性中

    Function definitions usually appear in top-level JavaScript code. They may also be nested within other function definitions, but only at the "top level" of those functionsthat is, function definitions may not appear within if statements, while loops, or any other statements.

 

Technically speaking, the function statement is not a statement. Statements cause dynamic behavior in a JavaScript program, while function definitions describe the static structure of a program. Statements are executed at runtime, but functions are defined when JavaScript code is parsed, or compiled, before it is actually run. When the JavaScript parser encounters a function definition, it parses and stores (without executing) the statements that comprise the body of the function. Then it defines a property (in the call object if the function definition is nested in another function; otherwise, in the global object) with the same name as the function to hold the function.

(翻译:科学的说,函数语句并非一个语句,在javascript程序中,语句会引发动态的行为,但函数定义却描述的静态的程序结构。语句在运行时执行,而函数被定义却在javascript code 被解析或编译时,实际执行之前 被定义的,当javascript 解析器遇到函数定义时就会解析和储存(并不执行)由函数体组成的语句,然后会定义一个和函数名称相同的属性来保存他。)

The fact that function definitions occur at parse time rather than at runtime causes some surprising effects. Consider the following code:

alert(f(4));     // Displays 16. f( ) can be called before it is defined.
var f = 0;       // This statement overwrites the property f.
function f(x) {  // This "statement" defines the function f before either
    return x*x;  // of the lines above are executed.
}
alert(f);        // Displays 0. f( ) has been overwritten by the variable f.


 

These unusual results occur because function definition occurs at a different time than variable definition. Fortunately, these situations do not arise very often.

 

return 语句

 

语法:

return expression;

return;

return 只能出现在函数体内。

如果一个函数执行了不带expression的return语句,或因执行到了函数主体的尾部而返回,那么这个函数调用的表达式的值 就是undefined

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值