JS5—— 函数返回值和作用域

函数
特点:用于封装反复执行的代码,是一个功能体

  • 创建一个普通函数

    function  函数名称(){
         函数体;
    }
    函数名称();  //函数的调用
    
  • 创建带有参数的函数

    function  函数名称(参数列表){ //形参
        函数体;
    }
    函数名称(参数列表);   //实参
    

    实参可以赋值给形参,参数的数量可以是多个或者没有,如果参数数量传递少了或者没有,则对应位置的参数值返回为undefined

  • 创建带有返回值的函数

    function   函数名称(参数列表){
          函数体;
          return  值;  //函数调用所得到的结果
    }
    

    如果return后面有返回变量,则若想调用函数取得返回值,这就需要重新再函数外重新定义一个变量,return执行后就不再执行之后代码;

对比break和return关键字
break: 用于switch-case语句中或者循环语句中,作用是结束循环或者switch-case语句的执行
return : 用于功函数中,结束return之后语句的执行

变量的作用域

全局作用域函数作用域
函数体外声明的变量,任何位置都可以访问函数体内声明的变量,只有函数作用域可以访问

隐式全局变量:在函数中如果不加var声明的变量就是隐式全局变量,
注意:全局变量是不可以删除的,但是隐式全局变量可以删除;
下面是一些关于作用域的习题;
1.判断a,b,c分别输出什么

function fn(){
 var a=b=c=2;
}
fn();
console.log(b);//隐式全局变量,可以访问
console.log(c);//隐式全局变量,可以访问
console.log(a);//局部变量,报错

2.判断fn输出的是什么

function fn(){
   console.log(b);//undefined
   var b=2;
}
涉及到变量的提升

3.对比以下两组函数分别输出的是什么

var c=3;//迷惑行为——不考虑
function fun(){
   console.log(c);
   //优先考虑当前作用域下的c
   //如果当前作用域没有,再去考虑全局
   var c=5;//变量提升
} 
fun();//undefined
var c=3;
function fun(){
   console.log(c);
   //当前作用域没有会去上一级寻找
   //没有声明,所以不能提升;
   c=5;//给全局变量重新赋值为5
} 
fun();//3
console.log(c);//访问的是全局的c  输出的是5

4.判断下列函数输出值是什么

function add(a,b){
   //形参相当于局部变量,不能被外部访问
}
add(2,3);
console.log(a);//undefined
console.log(b);//undefined
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值