关于JavaScript中return的使用情况

关于JavaScript中return的使用情况

return的理解

return;语句会终止函数的执行,并赋值给函数的结果,将其返回。
return;也可以理解为‘函数执行的结果’就是return后面紧跟着的值。

return的使用

ex1:
	function back(){
        return true;
    }
	back();//无结果,因为要输出才能看到结果
	console.log( back() );//result == true	

ex2:
	function back(){
        if( 1==true ){
            return false;}
        return true;}
	console.log( back());//result == false
	//因为代码从上至下运行,当if判断为真,进入内部执行①,则会立即终止函数,并返回false

ex3:
	var arr = [6, 8, 10, 12];
	//这里我们利用map方法对数组里面的每一个值都*2
	var newArr = arr.map(function(x){
        //这里的x就代表数组里面的每一个值,每执行一次function函数就会调用一个数组的新的值
        x = x*2;//这样就把数组每个值都*2
        return x;//这样arr.map的结果就是x,它会将每一个值装入一个新的数组,我们再cl一下arr.map就可以得到新的数组
        console.log(11);//不会输出
    })
	console.log( newArr );//这里我们将新的数组进行输出 [12,16,20,24]
	//这样的好处就是,就不需要手动的去遍历,然后再装入新的数组
	
	#这里有个问题,为什么return不会终止他的遍历呢?
    答:因为map方法使每一个数组的元素都调用一次function(x)函数,所以return是终止了这个函数了的。只是这个函数一直重复调用,一共调用了数组.length次
    ex4:
	//现在我要对满足条件的数组元素进行条件改变,把2的倍数的元素-1,不满足条件的元素不变。
	var arr = [1, 4, 8, 9];
	var newArr = arr.map( function(x){
        //现在我要对满足条件的数组元素进行条件改变,把2的倍数的元素-1
        if( !(x%2) ){
            x = x - 1;
        }
    })
    console.log( newArr );// [undefined, undefined, undefined, undefined]
	#为什么会是这个结果呢?
    答:因为没有给函数返回值,所以新数组里面的都是undefined
    
    改进写法:
    	var arr = [1, 4, 8, 9];
        var newArr = arr.map( function(x){
            //现在我要对满足条件的数组元素进行条件改变,把2的倍数的元素-1
            if( !(x%2) ){
                x = x - 1;
                return x; //这样就返回给map一个具体的值,存放再数组对应的位置
            }
        })
        console.log( newArr );//[undefined, 3, 7, undefined]
	#为什么还有两个undefined呢?
    答:因为只对满足条件的数组元素进行了返回值,并没有对不满足条件的元素进行默认值返回
    
    正确写法:
		var arr = [1, 4, 8, 9];
        var newArr = arr.map( function(x){
            //现在我要对满足条件的数组元素进行条件改变,把2的倍数的元素-1
            if( !(x%2) ){
                x = x - 1;
                return x; //这样就返回给map一个具体的值,存放再数组对应的位置
            }
            return x;//当不满住偶数条件是,返回默认值
        })
        console.log( newArr );//[1, 3, 7, 9]

注意点

return只是终止离他最近的上级函数,如果要输出这个return ,必须要console.log()这个函数结果,如果只是单纯的调用函数,是看不到结果的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TuoMei

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值