JavaScript基础——return返回值

1. javascript的返回值类型

  • 数值 
  • 字符串 
  • 布尔值 
  • 对象
  • 数组
  • 函数
  • undefined、null

2. 返回值是函数时

function f1(x){
    return function(y){
        console.log(x+y);
    }
}
f1(1)(2);

//3
  • 所有函数的默认返回值都是undefined。
  • return后面的任何代码都不会执行
  • 注意调用函数是f1()()

3. return function()与return function的区别

例子一:return function_name()

function f1(){
    console.log('外层函数');
    function f2(){
        console.log('内层函数');
    }
    return f2();
}
var s = f1();
console.log('break');
// s();

output
外层函数
内层函数
break

return function_name

function f1(){
    console.log('外层函数');
    function f2(){
        console.log('内层函数');
    }
    return f2;
}
var s = f1();
console.log('break');
s();

output
外层函数
break
内层函数

例子二:return function_name()

function  counterCreator(){
    var index = 1;  
    function counter(){  //嵌套函数
        return index++;
    }
    return counter();   
}

var counterA = counterCreator();
console.log(counterA);
console.log(counterA);
console.log(counterA);

output
1
1
1   //结果重复输出三次

return counter()时会自动调用嵌套函数,counterA得到的是一个数字,并不是函数。

return function_name

function  counterCreator(){
    var index = 1;  //闭包函数执行时依赖的变量
    function counter(){
        return index++;
    }
    return counter;   //返回的函数
}

var counterA = counterCreator();
console.log(counterA());
console.log(counterA());
console.log(counterA());

output
1
2
3

return counter返回的是整个counter()函数,counterA将引用counter()函数和它的执行环境,即闭包。

猜你喜欢

转载自blog.csdn.net/huaf_liu/article/details/110939595