首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

13.1 函数中的变量

函数中的变量 在函数中,我们可以看到也进行了变量的使用,那函数中的变量和函数外的变量到底有什么区别呢? 1.1....,在函数中name输出jerry # 但是,在函数外部,我们重新打印name的值,发现name的值还是tom # # 此时:函数中的name是局部变量,函数外部的name是全局变量 # 如此诡异的情况...函数中的变量隔离 如果函数中没有通过global引入全局变量,但是在函数中又使用了和全局变量相同的名称 此时就会出现问题 name = "tom" def test(): # 这里只是想使用一下全局变量的值...,首先描述一下错误出现的条件 1.如果函数中没有声明和全局变量名称一致的局部变量,函数中直接使用全局 变量的值,不会出现错误 2.如果函数中,一旦在任意位置定义了和全局变量名称一致的局部变量,函数中...在局部变量声明定义之前使用这个名称的变量,就会出现上述错误 这是因为,在函数中,一旦声明变量并且赋值一个局部变量,函数中又没有通过 global引入同名的全局变量,此时在函数中只会存在局部变量~

1.4K20

【JavaScript】预解析 ① ( 变量预解析 - 变量提升 | 函数预解析 - 函数提升 | 函数表达式预解析 )

“ 又称为 ” 变量和函数的提升 " , 会把 var 变量声明 和 function 函数声明 提升到 当前作用域 的 最前面 ; 预解析 机制 允许在代码中 , 无论实际 声明变量 / 声明函数..., 提升到 当前 作用域 的 最前面 ; 在 JavaScript 中 , 使用 var 关键字声明的变量 , 会被提升到其所在的 全局作用域 或 局部作用域 的顶部 ; 注意 : 只有 变量 的声明...1、函数预解析 - 函数提升 函数预解析 又称为 " 函数提升 " , 与 变量提升类似 , 使用 function 关键字 的 函数声明 也会被提升到它们所在的作用域的顶部 , 因此可以 在函数声明之前...1、函数表达式预解析 函数表达式 的 本质是一个 变量 , 只是将 函数 赋值给了 变量 ; 由于 变量预解析 时 , 只是将 var 关键字的 变量声明 提升到了 作用域的最顶端 , 变量的 初始化...仍然在原地 ; 此时 通过该 变量 调用函数 , 肯定会报错 , 因为 函数此时没有赋值给 该变量 ; 在下面的代码中 , var fun 是一个变量 , 因此这里只进行 变量的提升 ,

14210
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Java中Integer的变量比较源码解析

    b=3333; System.out.println(a==b); System.out.println(a.equals(b)); } 此程序打印出来的结果分别为...原因分析 我们要知道当给一个Integer对象赋一个int值时,Integer的valueOf方法会被调用。那么,我们看看Integer的valueOf方法到底做了些什么。...IntegerCache.low和IntegerCache.high之间时,Integer被赋的值将从IntegerCache.cache数组中获得,也就是通过缓存中获得。...综合两段代码,我们可以知道,在默认情况下,在-128到127之间的数据在赋值时会从缓存中获得。...结论 因此,在-128到127之间的数据多次获得的均为同一个对象,而超出这个范围的数据将会创建一个新的对象,只能通过equals方法比较的才是对象的值。

    69940

    详解JavaScript中的变量提升函数提升

    什么是变量/函数提升 包括变量和函数在内的所有声明都会在任何代码被执行前首先被处理,这种现象称为提升。...var a = 200, 所以 var a会被提升到fn的作用域顶端,第一输出则为undefined 下面这段代码,由于es6之前,js是没有块级作用域的,所以 if 中声明的a变量会被当成全局变量处理...a没有使用var定义,会造成zxx函数中没有变量声明,所以zxx里面访问的变量a,其实都是访问的全局变量a,a = 20 又相当于给全局变量a重新赋值20 函数声明提升 通过function声明的函数,...ReferenceError, 而是 TypeErr var zxx = function () { console.log('zxx is a great girl') } 这段程序中的变量标识符...当前函数声明和变量声明使用同一个变量名称时,函数的优先级高于变量的优先级 console.log(zxx) // 会输出zxx定义的函数 function zxx () {

    1.5K30

    Python 按规则解析并替换字符串中的变量及函数

    按规则解析并替换字符串中的变量及函数 需求 1、按照一定规则解析字符串中的函数、变量表达式,并替换这些表达式。...这些函数表达式可能包含其它函数表达式,即支持函数嵌套 2、函数表达式格式:{ __函数名称() }、{__函数名称( 函数参数 )} 3、变量表达式格式:${ varName } 注意: 函数名称以...) # 用于获取动态值中的变量表达式 REGEX_PATTERN_FOR_FUNC_DEFINITION = re.compile('\${\s*__.+?...\)\s*}', re.DOTALL) # 用于获取函数表达式中的函数名称及其参数 REGEX_PATTERN_FOR_FUNC_NAME_WITH_ARGS = re.compile('\${\s*(...\)\s*}', re.DOTALL) # 用于获取函数表达式中的函数名称及其参数 def test_func1(): print('-----func1 called-----') def

    32440

    python中的变量

    什么是变量?总结不好也记不得它的完整定义,就举个例子来便于自己学习总结吧。假如我们要计算1+2的值,那么首先在内存中要存储两个值,一个是:1,一个是:2。...假如在程序中我们用a+b来表示两个数相加,那么当a=1,b=2时,就可以计算出1+2=3,此时这个a和b就是变量,它们也可以等于其他数值,结果也是随着数值的改变而改变的。a和b的值能变动,就叫变量。...知道了变量的名字(上面的a和b)就是内存中存储的数据的别名,那么a=1,b=a,表示什么意思呢?a=1 表示内存中存有一个数值1,给它取个名字叫a。b=a表示给a取个名字叫b吗?非也。...3、python中的一些关键字不能当做变量,这些关键字已经被系统使用了,如果作为变量名就不知道是系统内置的,还是自己定义的。 4、变量名是区分大写的。 5、变量名中不能含有空格。...变量是能改变的,名字可以随意给哪个内存中的数据用嘛。而常量就是不能变的。常量的定义必须是大写字母。比如:NAME = "大能猫",表示NAME就是内存中“大能猫”这个数据的专属名字。

    2.5K10

    Js中的变量

    Js中的变量:  1:如果在var中没有初始化变量的值,则默认为undefined.  2:可以不用var来申明一个变量,但是在过程级中申明一个变量时,就必须用var.   ...var bestAge = null;  4:如果声明了一个变量但没有对其赋值,该变量存在,其值为Jscript 值 undefined。下面给出示例。    ...var currentCount  5: 在 JScript 中 null 和 undefined 的主要区别是 null 的操作象数字 0,    而 undefined 的操作象特殊值NaN (不是一个数字...js中的数据类型  1:Jscript 有三种主要数据类型、两种复合数据类型和两种特殊数据类型    主要(基本)数据类型是: 字符串 数值 布尔    复合(引用)数据类型是: 对象 数组    特殊数据类型是...: Null Undefined  2:测试是否已经声明变量 x :    if (typeof(x) == "undefined")      // 作某些操作 js中的内置对象  1:Jscript

    12.9K60

    less中的变量

    什么是变量和 JS 中的概念基本一样less 中定义变量的格式@变量名称: 值;@w: 200px;less 中使用变量的格式@变量名称;@w;@w: 200px;@h: 400px;@c: red;....,使用格式如下@变量名称 : @变量名称;@w: 200px;@h: @w;和 JS 一样 less 中的变量也有 全局变量 和 局部变量 之分定义在 {} 外面的就是 全局的变量,什么地方都可以使用图片定义在...background: @bgColor; margin-bottom: 20px;}.box2 { width: @w; height: @h; background: @c;}图片如果定义在 {} 中的变量在其它的...@bgColor; margin-bottom: 20px;}.box2 { width: @w; height: @h; background: @bgColor;}图片注意点:less 中的变量是...,只有相同作用域的变量才会相互影响图片@w: 200px;@h: 400px;@c: red;.box1 { @c: yellow; width: @w; height: @h; background

    31720

    CSS 中的变量

    声明变量 3. var() 函数 4. 变量的作用域 1....前言 ---- 在 CSS 中,有很多需要反复使用的属性值,如果每个使用的地方都直接写死这个值,而没有使用变量去定义这个值的话,后期修改起来会很麻烦。...有很多人忽略了在 CSS 中也可以定义变量这个事情,相信你会爱上它 ! CSS 使用变量有很多好处: 可以减少样式代码的重复性,增加样式代码的扩展性和灵活性 2....(143, 143, 143, .1) } 上面代码中,声明了三个变量: --color、--size、--shadow 变量名大小写敏感,例如: --header 和 --Header 是两个不同的变量...如果变量不存在,就会使用这个默认值 font-size: var(--size, 30px); var() 函数还可以用在变量的声明 --big-size: var(--size); 变量值只能作为属性名

    2.6K10

    Java中的变量

    关注我们 注:下面讲到的初始化就是赋值的意思 变量 基本概念 我们通过变量来操纵存储空间中的数据,变量就是指代这个存储空间!空间位置是确定的,但是里面放置什么值不确定!...编号就对应于我们变量的变量名,里面存什么对应于我们变量的值。 Java 是一种强类型语言,每个变量都必须声明其类型。 Java 变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。...可以在一行中声明多个变量: int i ,j; 不提倡这种风格,逐一声明每一个变量可以提高程序可读性。...可以将变量的声明和初始化放在同一行中,例如: int age = 18; float e = 2.718281828f; 变量分类: 局部变量( lacal variable): 方法或语句块内部定义的变量...实例变量(成员变量 member variable): 方法外部、类的内部定义的变量。从属于对象,生命周期伴随对象始终。

    2.3K10

    python中的变量

    变量命名规则 Python 3 中的变量命名有一定要求: 变量名只能包含字母、数字和下划线。...不要将Python关键字和函数名用作变量名,即不要使用Python保留用于特殊用途的单词, 关键字指的是为 Python 语言预留的单词,例如 import。...,type 是 Python 3 内置的一个函数,用来显示变量的数据类型 运算 继续在上一节中的 python 3 的交互环境中执行下面的操作,理解 Python 3 中的数学运算: e = a + b...数字 -1 为最后一个字符,使用冒号进行切片: str1 str1[0] str1[1] str1[-1] str1[-2] str1[:2] str1[3:] 切片的位置很容易让人迷惑,所以需要多尝试一些切片的方式来理解...Python 3中的内置函数 len() 可以获得字符串包括的字符数量: len(str2)

    2.8K00

    MariaDBMySQL中的变量

    能在运行过程中修改的变量称为动态变量,只能在数据库实例关闭状态下修改的变量称为静态变量或只读变量。动态变量使用set修改。如果在数据库实例运行状态下修改静态变量,则会给出错误。...在begin...end中的set是一般set语句的扩展版本,它既可以设置系统变量、用户变量,也可以设置此处的本地变量。 set var_name=expr,[var_name=expr1,...]...或者使用select...into语句从表中获取值来赋值给变量,但是这样的赋值行为要求表的返回结果必须是单列且单行的标量结果。例如下面的语句将col的列值赋值给var_name变量。...但在mariadb中,begin...end是允许定义在存储程序(存储函数,存储过程,触发器,事件)之外的,所以decalre也算是能够定义在存储程序之外吧。...如果游标中的ROW TYPE OF变量是定义在一个循环之中,则数据类型在循环的开头就已经获取,且之后的循环不再改变。

    2.3K10

    Shell中的变量

    (2)等号两侧不能有空格 ​(3)在bash中,变量默认类型都是字符串类型,无法直接进行数值运算。 ​(4)变量的值如果有空格,需要使用双引号或单引号括起来。...unset readonly B=2 echo $B 2 B=9 -bash: B: readonly variable ​(5)在bash中,变量默认类型都是字符串类型,无法直接进行数值运算 C=1...$D I love b ​(7)可把变量提升为全局环境变量,可供其他Shell程序使用,规则:export 变量名 vim helloworld.sh 在helloworld.sh文件中增加echo...1 2 3 // 参数的内容 1 2 3 // 参数的内容 特殊变量:$?...(功能描述:最后一次执行的命令的返回状态。如果这个变量的值为0,证明上一个命令正确执行;如果这个变量的值为非0(具体是哪个数,由命令自己来决定),则证明上一个命令执行不正确了。)

    1.6K20

    PHP中的变量

    在PHP中变量是用于储存信息的容器,我们命令服务器去干活的时候,往往需要产生一些数据,需要临时性存放起来,方便取用赋值方法与数学中的代数相类似 1、在PHP中变量是用于储存信息的容器,类似于数学中的集合...除了函数外,全局变量可以被脚本中的任何部分访问,要在一个函数中访问一个全局变量,需要使用 global关键字。 在 PHP函数内部声明的变量是局部变量,仅能在函数内部访问 在以上实例中 myTest() 函数定义了 x 和 y 变量。x 变量在函数外声明,所以它是全局变量 , y变量在函数内声明所以它是局部变量。...在函数内调用函数外定义的全局变量,我们需要在函数中的变量前加上 global关键字 中声明的,作为函数声明的一部分 <?

    29010

    Powershell中的变量

    在我们的迷你系列“Variables in Shells”中,了解如何在PowerShell中处理局部变量。...shelloff.png 在计算机科学(和休闲计算)中,变量是内存中的位置,用于保存任意信息以供以后使用。换句话说,这是一个临时存储容器,你可以将数据放入或取出数据。...本文介绍在Windows,Linux或Mac上运行的PowerShell中的变量。...在PowerShell中是否需要变量取决于你在终端中执行的操作。 对于某些用户而言,变量是管理数据的基本手段,而对于另一些用户而言,它们是次要的和暂时的便利,或者对于某些用户而言,它们也可能不存在。...在这个简单的示例中,你的变量不是很有用,但是它仍然可以传达信息。 例如,由于FOO变量的内容是文件路径,因此可以将FOO用作指向其值引用的目录的快捷方式。

    3K00

    【PYTHON】论Python的类中的私有变量、共有变量、全局变量、局部变量

    参考链接: Python中的私有变量 0 引言  Python语言中,一切皆对象。对于Python语言中的变量,我想大家都不陌生,但是在Python中,变量也有很多种类。...如私有变量、共有变量、全局变量、局部变量等。这里给大家介绍Python类(class)中的变量之间的区别。...1 变量说明  1.1 私有变量  私有变量,顾名思义,是一个只能被当前类或者方法或者函数才能访问的变量,其他的类或者方法或者函数是不能直接访问的。这里说不能直接访问,也就是说可以通过间接的方式访问。...,而在__init__()构造方法中的long变量也是可以被对象f直接引用的,这就是说全局变量是被当做类中的一个属性来存放,在Python中。    ...代码定义的fly变量以及构造方法中的long变量都是全局变量,因为在long之前加了一个self的前缀,所有在整个类中,该long变量也是全局变量,至少在该类中的任何地方都可以访问到该变量。

    4.4K20
    领券