局部变量

js把局部变量变为全局变量

烂漫一生 提交于 2020-01-15 08:26:12
前提:最近在和APP之间进行交互,其中就包括APP对H5变量和方法的调用功能。 作为没有接触过此功能的我,经过一番搜索之后,熟练应用,下面是我操作,本次开发使用VUE框架,所以都是在VUE中的使用方法,当然其他项目自己更改一下还是可以用的。 第一:全局变量声明 1、未设置全局变量: < body > < button > 全局变量声明 < / button > < script > function test ( ) { var num = 10 ; console . log ( num ) } test ( ) console . log ( "num:" + num ) < / script > < / body > 输出结果: 2、设置为全局变量: < body > < button > 全局变量声明 < / button > < script > // function test(){ // var num=10; // console.log(num) // } // test() // console.log("num:"+num) function test2 ( ) { var num2 = 10 ; console . log ( num2 ) window . num2 = num2 } test2 ( ) console . log ( "num2:" +

c++ 线程局部变量thread_local

僤鯓⒐⒋嵵緔 提交于 2020-01-14 10:53:13
Linux 中的线程局部存储(一)   本章节转自: https://blog.csdn.net/cywosp/article/details/26469435   在Linux系统中使用C/C++进行多线程编程时,我们遇到最多的就是对同一变量的多线程读写问题,大多情况下遇到这类问题都是通过锁机制来处理,但这对程序的性能带来了很大的影响,当然对于那些系统原生支持原子操作的数据类型来说,我们可以使用原子操作来处理,这能对程序的性能会得到一定的提高。   那么对于那些系统不支持原子操作的自定义数据类型,在不使用锁的情况下如何做到线程安全呢?本文将从线程局部存储方面,简单讲解处理这一类线程安全问题的方法。 一、数据类型   在C/C++程序中常存在全局变量、函数内定义的静态变量以及局部变量,对于局部变量来说,其不存在线程安全问题,因此不在本文讨论的范围之内。全局变量和函数内定义的静态变量,是同一进程中各个线程都可以访问的共享变量,因此它们存在多线程读写问题。   在一个线程中修改了变量中的内容,其他线程都能感知并且能读取已更改过的内容,这对数据交换来说是非常快捷的,但是由于多线程的存在,对于同一个变量可能存在两个或两个以上的线程同时修改变量所在的内存内容,同时又存在多个线程在变量在修改的时去读取该内存值,如果没有使用相应的同步机制来保护该内存的话,那么所读取到的数据将是不可预知的

C/C++程序内存的分配

梦想的初衷 提交于 2020-01-13 23:15:52
转自: https://blog.csdn.net/cherrydreamsover/article/details/81627855 转载出处: 学习笔记 一、一个C/C++编译的程序占用内存分为以下几个部分: 栈区(stack):由编译器自动分配与释放,存放为运行时函数分配的局部变量、函数参数、返回数据、返回地址等。其操作类似于数据结构中的栈。 堆区(heap):一般由程序员自动分配,如果程序员没有释放,程序结束时可能有OS回收。其分配类似于链表。 全局区(静态区static):存放全局变量、静态数据、常量。程序结束后由系统释放。全局区分为已初始化全局区(data)和未初始化全局区(bss)。 常量区(文字常量区):存放常量字符串,程序结束后有系统释放。 代码区:存放函数体(类成员函数和全局区)的二进制代码。 二、三种内存分配方式 从静态存储区分配 内存在程序编译的时候已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。 在栈上创建 在执行函数时,函数内局部变量的存储单元可以在栈上创建,函数执行结束时,这些内存单元会自动被释放。 栈内存分配运算内置于处理器的指令集,效率高,但是分配的内存容量有限。 从堆上分配 亦称为动态内存分配。 程序在运行的时候使用malloc或者new申请任意多少的内存,程序员自己负责在何时用free或delete释放内存。

Python变量理解

强颜欢笑 提交于 2020-01-13 03:13:04
变量进阶(理解) 01. 变量的引用 变量 和 数据 都是保存在 内存 中的 在 Python 中 函数 的 参数传递 以及 返回值 都是靠 引用 传递的 1.1 引用的概念 在 Python 中 变量 和 数据 是分开存储的 数据 保存在内存中的一个位置 变量 中保存着数据在内存中的地址 变量 中 记录数据的地址 ,就叫做 引用 使用 id() 函数可以查看变量中保存数据所在的 内存地址 注意:如果变量已经被定义,当给一个变量赋值的时候,本质上是 修改了数据的引用 变量 不再 对之前的数据引用 变量 改为 对新赋值的数据引用 1.2 变量引用 的示例 在 Python 中,变量的名字类似于 便签纸 贴在 数据 上 变量可以理解为是一个标签,当与对象关联时,其实是变量这个标签拴在了那个对象上了,一个标签只能拴在一个对象上且还是栓的最新的那个对象; 1.3 函数的参数和返回值的传递 在 Python 中,函数的 实参 / 返回值 都是是靠 引用 来传递来的 def test(num): ​ print("-" * 50) print("%d 在函数内的内存地址是 %x" % (num, id(num))) ​ result = 100 ​ print("返回值 %d 在内存中的地址是 %x" % (result, id(result))) print("-" * 50) ​

静态局部变量的说明

自作多情 提交于 2020-01-11 23:32:53
用static声明静态局部变量 有时希望函数中的局部变量的值在函数调用结束后不消失而保留原值,即其占用的存储单元不释放,在下一次该函数调用时,该变量保持上一次函数调用结束时的值。这时就该指定该局部变量为静态局部变量(static local varible)。 (1) 静态局部变量在静态存储区内分配存储单元。在程序整个运行期间都不释放。而自动变量(即动态局部变量)属于动态存储类别,存储在动态存储区空间,函数调用结束后即释放。 (2) 为静态局部变量赋初值是在编译时进行的,只赋初值一次,在程序运行时已有初值。以后每次调用函数时,不再重新赋值,而只是保留上次函数调用结束时的值。而自动变量赋初值,不是在编译时进行的,而是在函数调用时进行,每调用一次函数重新给一次初值,相当于执行一次赋值语句。 (3) 如果在定义局部变量时不赋值的话,对静态局部变量来说,编译时自动赋值 0 (对数值型变量)或空字符(对字符型变量)。而对自动变量来说,如果不赋初值,则它的值是一个不确定的值。这是由于每次函数调用结束后存储单元已释放,下次调用时又重新另分配存储单元,而所分配的单元中的值是不确定的。 (4) 虽然静态局部变量在函数调用结束后仍然存在,但其他函数是不能引用它的,也就是说,在其他函数中是“不可见”的。 (5) 静态存储要多占内存(长期占用不释放,而不能像动态存储那样一个存储单元可先后供多个变量使用

函数的基本操作

隐身守侯 提交于 2020-01-11 16:51:35
函数的用法 基本的用法 基本参数分为位置参数和关键字参数,位置参数必须在关键字参数之前,关键字参数也被称为默认参数,如果没有传递该参数则需要会将默认值传递给函数 return可以返回一个或者多个值,当返回多个值的时候,结果是由多个值组成的一个元组 # 用户输入信息,信息写入文件保存 def file(name, age, level, gender='男'): with open('../re_st/article/student_msg.txt', mode='a+', \ encoding='utf-8') as f: msg = name + ' ' + age + ' ' + gender + ' ' + level f.write(msg) print() return '写入成功' while True: context = input("请选择是否继续输入,如果停止请输入q或者Q,继续请按任意键:") if context.upper() == 'Q': break else: name = input('请输入姓名:') age = input('请输入年龄:') gender = input("请输入性别:") level = input('请输入学历:') if gender == '': print(file(name, age, level)) else:

python学习笔记之初识函数

旧城冷巷雨未停 提交于 2020-01-11 14:35:15
初识函数 函数的定义 def my_len(s): #定义函数用def ,参数可写可不写 i = 0 for k in s: i += 1 return i #返回值 ret1 = my_len('今天也要努力工作呀') #传递参数:传参,实际参数,实参 ret2 = my_len([1,2,3,4,5]) #传递参数:传参 print(ret1) print(ret2) 函数的参数 定义函数的时候: 位置参数 : 直接定义参数 默认参数,关键字参数 :参数名 = '默认的值' 动态参数 : 可以接受任意多个参数 参数名之前加*,习惯参数名args,即*args 参数名之前加,习惯参数名kwargs,即kwargs 顺序:位置参数,*args,默认参数,kwargs 函数的返回值 返回值的3种情况: 1.没有返回值 —— 返回None 不写return 只写return:结束一个函数的继续 return None —— 不常用 2.返回1个值 可以返回任何数据类型 只要返回就可以接收到 如果在一个程序中有多个return,那么只执行第一个 3.返回多个值 用多个变量接收:有多少返回值就用多少变量接收 用一个变量接收: 得到的是一个元组 函数的注释 def func(): ''' 这个函数实现了什么功能 参数1: 参数2: :return: 是字符串或者列表的长度 ''' pass

静态局部变量

自古美人都是妖i 提交于 2020-01-11 09:11:46
在局部变量前加上“static”关键字,就成了静态局部变量。静态局部变量存放在内存的全局数据区。函数结束时,静态局部变量不会消失,每次该函数调用时,也不会为其重新分配空间。它始终驻留在全局数据区,直到程序运行结束。静态局部变量的初始化与全局变量类似.如果不为其显式初始化,则C++自动为其初始化为0。   静态局部变量与全局变量共享全局数据区,但 静态局部变量只在定义它的函数中可见 。静态局部变量与局部变量在存储位置上不同,使得其存在的时限也不同,导致对这两者操作 的运行结果也不同。 对静态局部变量的说明: (1) 静态局部变量在静态存储区内分配存储单元。在程序整个运行期间都不释放。而自动变量(即动态局部变量)属于动态存储类别,存储在动态存储区空间(而不是静态存储区空间),函数调用结束后即释放。 (2) 为静态局部变量赋初值是在编译时进行值的,即 只赋初值一次 ,在程序运行时它已有初值。以后每次调用函数时不再重新赋初值而只是保留上次函数调用结束时的值。而为自动变量赋初值,不是在编译时进行的,而是在函数调用时进行,每调用一次函数重新给一次初值,相当于执行一次赋值语句。 (3) 如果在定义局部变量时不赋初值的话,对静态局部变量来说,编译时自动赋初值0(对数值型变量)或空字符(对字符型变量)。而对自动变量来说,如果不赋初值,则它的值是一个不确定的值。这是由于每次函数调用结束后存储单元已释放

【金三银四】JVM虚拟机栈执行原理深入详解

僤鯓⒐⒋嵵緔 提交于 2020-01-11 04:03:48
前言: 你好,早上、中午、下午、晚上好。我是Java2B哥(微信搜Java2B)。一名无缘985,日常996工程师。 你们是不是非常的激动呀! 2B哥今天继续教大家JVM知识。这次章节为: 【金三银四-JVM系列】CMS收集器与GC日志分析定位问题详解 【金三银四】JVM虚拟机CMS和G1收集器详解 什么是JVM 相信很多小伙伴都非常熟悉了,JVM不就是虚拟机吗?那虚拟机又是什么了?不是JVM嘛! 这不废话嘛。 JVM可以说离我们既熟悉又陌生,很多朋友可能在工作中接触不到这块技术,但是在面试往往被问到(概率还蛮大),被问到了自认倒霉,死记硬背是没用的,到头来还是的忘,不过没有关系,今天你们遇到2B哥我,我这免费给大家说道说道JVM知识点,我要没让你明白算我输,你可以留言喷我,如果要是可以,你们也给我点个赞成不?别墨迹了 赶紧着吧。 ok,上货。此处应该有鲜花!❀❀❀❀❀❀❀❀ 初识JVM: 相信这张图大家都不陌生,这是整个Java体系,其中包括JDK.JRE.JVM三者的关系。 图中可以看得出来JRE包含了JVM,JDK包含了JRE。 从包含的角度就是: JDK是爷爷 JRE是父亲 JVM是儿子(如果觉得列子不太恰当)来看图 我们来看代码: public class App { private String name; private Object object = new

java07 类与对象&封装&构造方法

大憨熊 提交于 2020-01-11 02:01:56
1.类与对象 1.1面向对象的特点 面向对象思想是一种更符合我们思考习惯的思想,它可以将复杂的事情简单化,并将我们从执行者变成了指挥者。面向对象的语言中,包含了三大基本特征,即 封装、继承和多态 。 1.2 类和对象 什么是类 类:是一组相关属性和行为的集合。可以看成是一类事物的模板,使用事物的属性特征和行为特征来描述该 类事物。 现实中,描述一类事物: 属性:就是该事物的状态信息。 行为:就是该事物能够做什么。 举例:小猫。 属性:名字、体重、年龄、颜色。 行为:走、跑、叫。 什么是对象 对象:是一类事物的具体体现。对象是类的一个实例(对象并不是找个女朋友),必然具备该类事物的属性和行为。 现实中,一类事物的一个实例:一只小猫。 举例:一只小猫。 属性:tom、5kg、2 years、yellow。 行为:溜墙根走、蹦跶的跑、喵喵叫。 类与对象的关系 类是对一类事物的描述,是抽象的。 对象是一类事物的实例,是具体的。 类是对象的模板,对象是类的实体。 1.3 类的定义 类的定义格式 public class ClassName { //成员变量 //成员方法 } 定义类 :就是定义类的成员,包括成员变量和成员方法。 成员变量 :和以前定义变量几乎是一样的。只不过位置发生了改变。 在类中,方法外。 成员方法 :和以前定义方法几乎是一样的。只不过把static去掉