函数声明和函数表达式
2016-08-25 15:50
85 查看
function foo(){
function bar() {
return 3;
}
return bar();
function bar() {
return 8;
}
}
alert(foo());
题 2:
function foo(){
var bar = function() {
return 3;
};
return bar();
var bar = function() {
return 8;
};
}
alert(foo());
题 3:
alert(foo());
function foo(){
var bar = function() {
return 3;
};
return bar();
var bar = function() {
return 8;
};
}
题 4:
function foo(){
return bar();
var bar = function() {
return 3;
};
var bar = function() {
return 8;
};
}
alert(foo());
答案是8、3、3和 [Type Error: bar is not a function]
分析:
//**Simulated processing sequence for Question 1**
function foo(){
//define bar once
function bar() {
return 3;
}
//redefine it
function bar() {
return 8;
}
//return its invocation
return bar(); //8
}
alert(foo());
return 语句后面的代码是运行不到的啊……
//**Simulated processing sequence for Question 2**
function foo(){
//a declaration for each function expression
var bar = undefined;
var bar = undefined;
//first Function Expression is executed
bar = function() {
return 3;
};
// Function created by first Function Expression is invoked
return bar();
// second Function Expression unreachable
}
alert(foo()); //3
//**Simulated processing sequence for Question 4**
function foo(){
//a declaration for each function expression
var bar = undefined;
var bar = undefined;
return bar(); //TypeError: "bar not defined"
//neither Function Expression is reached
}
alert(foo());
function bar() {
return 3;
}
return bar();
function bar() {
return 8;
}
}
alert(foo());
题 2:
function foo(){
var bar = function() {
return 3;
};
return bar();
var bar = function() {
return 8;
};
}
alert(foo());
题 3:
alert(foo());
function foo(){
var bar = function() {
return 3;
};
return bar();
var bar = function() {
return 8;
};
}
题 4:
function foo(){
return bar();
var bar = function() {
return 3;
};
var bar = function() {
return 8;
};
}
alert(foo());
答案是8、3、3和 [Type Error: bar is not a function]
分析:
//**Simulated processing sequence for Question 1**
function foo(){
//define bar once
function bar() {
return 3;
}
//redefine it
function bar() {
return 8;
}
//return its invocation
return bar(); //8
}
alert(foo());
return 语句后面的代码是运行不到的啊……
//**Simulated processing sequence for Question 2**
function foo(){
//a declaration for each function expression
var bar = undefined;
var bar = undefined;
//first Function Expression is executed
bar = function() {
return 3;
};
// Function created by first Function Expression is invoked
return bar();
// second Function Expression unreachable
}
alert(foo()); //3
//**Simulated processing sequence for Question 4**
function foo(){
//a declaration for each function expression
var bar = undefined;
var bar = undefined;
return bar(); //TypeError: "bar not defined"
//neither Function Expression is reached
}
alert(foo());
相关文章推荐
- JavaScript程序开发(十四)—函数声明与函数表达式
- 函数声明和函数表达式
- 函数声明与函数表达式在间隔与循环中的表现
- 函数声明与函数表达式
- 函数声明与定义,作用域,函数声明与表达式的区别
- 函数声明与函数表达式
- 函数声明、函数表达式、匿名函数
- 函数表达式和函数声明~(自己的记录)
- 函数声明与函数表达式基础介绍
- 函数声明与函数表达式、变量提升
- 函数声明与函数表达式
- 函数声明和函数表达式的区别
- 函数声明与函数表达式的区别
- 函数声明与函数表达式
- 函数声明和函数表达式的理解
- 函数声明与函数表达式
- 函数声明和函数表达式
- 函数声明和函数表达式
- 函数声明和函数表达式——函数声明和函数表达式的异同
- 函数声明与函数表达式