函数声明与函数表达式
2017-02-24 00:00
183 查看
目录:
1.函数声明与函数表达式介绍(其中区别)与案例(如何区分)
2.为什么要区分函数声明与函数表达式和其实际意义
3.条件语句中的函数声明和函数表达式及一个实际的案例
1.在javascript中有两种最常用的函数声明方法:
函数声明:
function 函数名称(参数:可选){函数体}
函数表达式:
function 函数名称(可选)(参数:可选){函数体可选}
不难看出,如果没有给出函数名称的话,那就一定是表达式,可是如果有函数名称要怎么区分函数声明和函数表达式呢?
案例:
2.函数表达式和函数声明其中的解析顺序也存在十分微妙的差别,首先,函数声明会在任何表达式被解析和求值之前被解析和求值,即使你的声明在代码的最后一行,你的声明也会在同作用域内第一个表达式之前呗解析/求值,参照案例
案例:
3.条件语句中的函数声明和函数表达式及一个实际的案例
虽然函数声明可以在条件语句中使用,但是其还没有被标准化,所以在不同环境(浏览器)下运行可能有不同的结果,所以最好使用函数表达式,请看下面的案例
案例:
1.函数声明与函数表达式介绍(其中区别)与案例(如何区分)
2.为什么要区分函数声明与函数表达式和其实际意义
3.条件语句中的函数声明和函数表达式及一个实际的案例
1.在javascript中有两种最常用的函数声明方法:
函数声明:
function 函数名称(参数:可选){函数体}
函数表达式:
function 函数名称(可选)(参数:可选){函数体可选}
不难看出,如果没有给出函数名称的话,那就一定是表达式,可是如果有函数名称要怎么区分函数声明和函数表达式呢?
案例:
function foo(){} // 声明,因为它是程序的一部分 var bar = function foo(){}; // 表达式,因为它是赋值表达式的一部分 new function bar(){}; // 表达式,因为它是new表达式 (function(){ function bar(){} // 声明,因为它是函数体的一部分 })();
2.函数表达式和函数声明其中的解析顺序也存在十分微妙的差别,首先,函数声明会在任何表达式被解析和求值之前被解析和求值,即使你的声明在代码的最后一行,你的声明也会在同作用域内第一个表达式之前呗解析/求值,参照案例
案例:
alert(fn()); function fn() { return 'Hello world!'; } //函数fn是在alert之后声明的,但是在alert执行的时候,fn已经有定义了
3.条件语句中的函数声明和函数表达式及一个实际的案例
虽然函数声明可以在条件语句中使用,但是其还没有被标准化,所以在不同环境(浏览器)下运行可能有不同的结果,所以最好使用函数表达式,请看下面的案例
案例:
// 千万别这样做! // 因为有的浏览器会返回fn1的这个function,而有的浏览器返回的却是第二个 例如IE10返回的都是第二个 if (true) { function foo() { return 'i am fn1'; } } else { function foo() { return 'i am fn2'; } } console.log(foo()); // 这样情况,我们最好要用函数表达式 var foo; if (true) { foo = function() { return 'i am fn1'; }; } else { foo = function() { return 'i am fn2'; }; } console.log(foo());
相关文章推荐
- JavaScript程序开发(十四)—函数声明与函数表达式
- 函数声明和函数表达式
- 函数声明与函数表达式在间隔与循环中的表现
- 函数声明与函数表达式
- 函数声明与定义,作用域,函数声明与表达式的区别
- 函数声明与函数表达式
- 函数声明、函数表达式、匿名函数
- 函数表达式和函数声明~(自己的记录)
- 函数声明与函数表达式基础介绍
- 函数声明与函数表达式、变量提升
- 函数声明与函数表达式
- 函数声明和函数表达式的区别
- 函数声明与函数表达式的区别
- 函数声明与函数表达式
- 函数声明和函数表达式的理解
- 函数声明与函数表达式
- 函数声明和函数表达式
- 函数声明和函数表达式
- 函数声明和函数表达式——函数声明和函数表达式的异同
- 函数声明与函数表达式