函数定义形参 ,也是局部变量

<script>
    //函数定义形参 ,也是局部变量
    function foo(x){
      var tmp=3;
      function bar(y){
        alert(x+y+tmp);

      }
      bar(10)
    }
    foo(2)
    //补充: document.write('中国抗疫')  在页面中输出文字
      //  document.write('中国抗疫')
       function fn2(){
        function getSum(x,y){
          // 声明两个形参
          return x+y 
        }
        var b=getSum(1,6) 
       }
       fn2()
       getSum(2,3)//报错
      
  </script>

2、块级作用域

作用域有三种:全局作用域 函数作用域 块级作用域

es6中新提出的块级作用域 ,let const有块级作用域 |  var没有

什么是块级作用域

就是 js中凡是带有{ } 花括号内部就是代码块 也即块级作用域

 

<script>
        // 凡是{ }括住的区域就是块级作用域
        // es6  赋予let  const块级作用域   var 没有块级作用域 但 函数作用域
        let num = 9
        if(num > 0){
            // 代码块   ----块级作用域
            let num1 = 100    //局部变量
            console.log(num1)
            var num3 = 23  //全局变量
            console.log(num3)
        }
        console.log(num1)//报错  let有块级作用域  num1局部变量
        console.log(num3)   //var没有块级作用域  

        for(var i = 1 ;i <= 9 ; i++){
            console.log(i)
        }
        console.log('var声明:',i)//10

        console.log('***************')  //10

        //for 循环变量一般用let去声明
        for(let j = 1 ;j <= 9 ; j++){
            console.log(j)  //局部变量
        }
        console.log(j)  //报错
    </script>

对比let var 的区别与练习

var 和 let关键字的区别有不同

        1、相同点:

            都是用来声明变量的关键字

        2、不同点

           (1)var可以重复声明  let只能声明一次

           (2)var声明的变量有变量提升     let没有变量提升

           (3)var有函数作用域  let有块级作用

<script>
        /* 
        var 和 let关键字的区别有不同
        1、相同点:
            都是用来声明变量的关键字
        2、不同点
           (1)var可以重复声明  let只能声明一次
           (2)var声明的变量有变量提升     let没有变量提升
           (3)var有函数作用域  let有块级作用域
        
        */

        console.log(num)  //undefined
        var num = 9

        // console.log(num1) //报错
        let num1=9 
        function fn1(){
            var num =9 ; //局部变量
            let num1 =8;//局部变量
        }
        if( 9 > 7){
            // 块级作用域
            let num5= 9000  //局部变量
            var num4 = 8 //全局变量
        }
        console.log(num5)  //报错  
        console.log(num4) //8
        // 注意:for循环里面 如果不想让循环体的内容与外界联系  用let声明
    </script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值