代码编织梦想

<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>

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/WH20000410/article/details/127992860

lua的全局变量、局部变量、函数闭包和非局部变量(upvalue)_炼气士的博客-爱代码爱编程_lua 静态变量

我们知道lua脚本语言的变量是弱类型的,即变量没有类型,值才有类型,同一名称的变量具体类型要看所赋值的类型,如下 a=1 --整型 a=1.0 --浮点型 a="ab" --string型 a={} --tab

js在函数中形参和局部变量同名的问题_matthewmayao的博客-爱代码爱编程

前言 上次牛客网做到这样一个题,非常有意思,陷阱非常多,当时觉得搞明白了,现在再看到,又糊涂了,发现了新的点,看一下: var foo={n:1}; (function (foo) { console.log

局部变量 全局变量 函数的嵌套_joyevansfeng的博客-爱代码爱编程

day10笔记: 局部变量:   1. 定义在函数内部的变量称为局部变量(函数的形参也是局部变量)   2. 局部变量只能在函数内部使用   3. 局部变量在函数调用时才能够被创建,在函数调用结束之后会自动销毁 全局变量:   1. 定义在函数外部,模块内部的变量称为全局变量   2. 所有的函数都可以直接访问"全局"变量,但函数内部不能直接通过赋值语句来

关于c语言函数形参(全局变量)的几点说明_qswz的博客-爱代码爱编程_函数的形参都属于全局变量

最近在写队列函数时,在调试过程中碰到形参的一些问题,作为心得写在这边。 1.函数的形参属于局部变量,仅在定义的函数内有效,函数返回后失效。 2.当在一个函数(比如main函数)内调用另外一个函数时,例如: void fu

javascript中函数的形参和函数内局部变量同名的问题-爱代码爱编程

前言上次牛客网做到这样一个题,非常有意思,陷阱非常多,当时觉得搞明白了,现在再看到,又糊涂了,发现了新的点,看一下: var foo={n:1}; (function (foo) { console.log(foo.n); foo.n = 3; var foo = {n:2}; console.log(foo.

python学习(16)之函数、形参与实参、函数的返回值、局部变量及全局变量_草莓啾啾啾的博客-爱代码爱编程

文章目录 一、函数的定义1、定义一个函数2、参数传递2.1 可更改对象和不可更改对象 二、参数1、形参2、实参2.1 位置实参2.2 关键字实参2.3 默认实参2.4 可变参数(不定长参数)2.5

Python之函数、形参与实参、函数的返回值、局部变量及全局变量及练习-爱代码爱编程

文章目录 一、函数的定义1、定义一个函数2、形参3、实参二、形参1、位置参数2、默认参数3、可变参数4、关键字参数三、函数的返回值四、局部变量和全局变量的作用域1、局部变量2、 全局变量五、练习12345 一、函数的定义 函数是组织好的,可以重复使用的,用来实现单一或者相关联功能的代码段,其实函数就是可以 实现某一功能的代码块,下次使用的时候

c语言之形参和实参,全局变量和局部变量-爱代码爱编程

c语言中形参与实参: 形参 form parameter 实参 real parameter出现在函数定义中的参数,就叫形参出现在函数调用中的参数,就叫实参 函数定义: int max( int a , int b ) //这里的a,b就是形参 { //在函数中,形参就可以当作是一个局部变量。 if ( a>b ) return a; else

彻底弄懂函数形参与变量、函数的重名问题-爱代码爱编程

1.函数与变量重名 例1: console.log(foo); function foo(){} var foo = "变量";   输出为: function foo(){} 代码实际是: function foo(){} var foo; console.log(foo); foo = "变量"; 为什么会这样呢?原因很简

Python 形参和实参,局部变量和全局变量的含义理解及使用-爱代码爱编程

目录 1、形参和实参 1.1 形参的含义及使用 1.2 实参的含义及使用 2、局部变量和全局变量 2.1 变量作用域的概念 2.2 局部变量 2.3 全局变量 2.4 修改全局变量值 1、形参和实参 1.1 形参的含义及使用 形参 :形式参数,表示函数内所要用的参数的类型和名字,没有确定值。形参变量只有在被调用时才分配内存单元,在调用

实参、形参、局部变量和全局变量-爱代码爱编程

目录 实参和形参实参数据传递函数调用过程形参实参和形参的关系局部变量和全局变量局部变量局部变量的作用域说明:全局变量全局变量说明: 实参和形参 实参 实际参数简称“实参”。在调用有参函数时,函数名后面括号中的参数称为“实际参数”,实参可以是常量、变量或表达式。 在调用有参函数时,主调函数和被调函数之间有数据传递关系。在主调函数中调用一个函

python函数定义,局部变量、全局变量-爱代码爱编程

函数 使用函数的意义在于提高编程效率,避免大量的重复工作 函数分为: 内置函数:可以直接调用的函数 第三方,模块相关函数:即导入第三方包,直接调用第三方包函数 自定义函数:即根据自己的计算需求,编写属于自己的程序段 常用内置函数 (1)len() :计算字符串的长度 如` a =list((1,2,3,4,5)) print(len(a)) (2

C语言变量定义与类型【局部变量、全局变量、形式参数】-爱代码爱编程

变量详解【局部变量、全局变量、形式参数】 变量的定义 什么是变量?   对于一般变量的解释,我们从字面意思上可以理解为允许对其值进行改变操作的量,是对某一对象值进行便于理解使用的名称。这么说可能有点不太明白,就比如说我们的身份证,在某种程度上就是一种变量,每一个身份证号(变量)都代表了一个确切的人(值),人可以有不同的发展,外界可以对其有不同的影响,但

python函数调用局部变量_python函数局部变量用法实例分析-爱代码爱编程

本文实例讲述了python函数局部变量用法。分享给大家供大家参考。具体分析如下: 当你在函数定义内声明变量的时候,它们与函数外具有相同名称的其他变量没有任何关系,即变量名称对于函数来说是 局部 的。这称为变量的 作用域 。所有变量的作用域是它们被定义的块,从它们的名称被定义的那点开始。 一、使用局部变量 示例如下: #!/usr/bin/pyt

c语言函数的形参是局部变量,C语言函数的形参和实参-爱代码爱编程

原标题:C语言函数的形参和实参 上一个例程中在进行函数调用的时候,不需要任何参数传递,所以函数定义和调用时括号内都是空的,但是更多的时候我们需要在主调函数和被调用函数之间传递参数。在调用一个有参数的函数时,函数名后边括号中的参数叫做实际参数,简称。而被调用的函数在进行定义时,括号里的参数叫做形式参数,简称。我们用个简单程序例子做说明。 unsign

形参、局部变量以及局部静态变量-爱代码爱编程

形参和定义在函数体内部的变量统称为局部变量,它们对函数而言是局部的,仅在函数的作用域内可见。函数体内的局部变量又分为普通局部变量和静态局部变量,对于形参和普通局部变量来说,当函数的控制路径经过变量定义语句时创建该对象,当到达定义所在的块末尾时销毁它。我们把只存在于块执行期间的对象称为自动对象。这几个概念的区别是: 形参是一种自动对象,函数开始时为形参申请