变量

ES6教程:let和const命令的用法

左心房为你撑大大i 提交于 2020-02-26 03:05:47
ES6中新增了let和const命令,分别用于声明变量和常量。 1. 使用let命令取代var命令 在ES6之前的版本中,使用 var 声明变量,在ES6中新增了 let 来声明变量。 let 完全可以取代 var ,因为二者的语义相同,而且 let 没有“副作用”。 我们先来看一下 let 命令有哪些特点: 不存在变量提升:变量只有在声明之后才能使用; 不允许重复声明:在相同的作用域下,一个变量名只能使用一次,不能重复声明; 具有块级作用域:在代码块中声明的变量,只对当前代码块和其内部嵌套代码块有效,如果嵌套代码块中声明了同名变量时,则对该嵌套代码块无效; 存在暂时性死区:当全局变量与代码块中变量同名时,代码块中的变量就有了块级作用域,其变量声明前不能使用。 JavaScript是弱类型的编程语言,在ES6之前使用 var 关键字声明变量,会发生变量提升的现象。简单来说,就是在声明变量之前就对该变量进行调用,程序不会报错,而且打印出来的值为 undefined 。如果是有Java或C++编程经验的小伙伴,肯定对这种现象是无法忍受的。我们用一段代码来演示一下这种现象: function test(){ console.log(i); var i = 1; } test(); 运行结果: undefined 上面代码中,变量 i 是使用 var 命令声明的

C++编程关键路径(一)

懵懂的女人 提交于 2020-02-26 03:05:13
最近看了这本由中国水利水电出版社出版的这本书,作者是梁永军,感觉里面的东西对我个人来说挺有用的,所以总结一下,也算是自己复习一下 第一章:C语言关键知识 1、关于内存: (1)栈:是用于那些在编译期间就能确定存储大小的变量的存储区,在函数作用域内创建,离开作用域后自动销毁。通常存储的是局部变量、函数参数等。存储区域一般是相邻的。 (2)堆:是用于那些在编译期间不确定存储大小的变量的存储区,存储空间一般是不连续的,由malloc(new)和free(delete)来申请和释放内存, (3)全局(静态存储区):在编译期间就能确定变量占用内存的大小,一般是全局变量和静态变量。 (4)常量存储区:存放的是常量,程序运行期间,全局可见,不允许被修改。 变量分为左值和右值,对于:char* p=”hello world”;中,左值是局部指针变量p,存储于函数栈上,右值是字符串常量”hello world”,存储于常量存储区。 2、函数的参数传值和传址 参数传值:把实参的值复制到函数运行时分配给函数的参数存储区中,函数不会访问调用函数的实参,被调用函数处理的是实参在本地的拷贝,这些拷贝值存储在函数的栈中。 参数传址:把实参的地址(指针或引用)传入函数,被调用的函数直接操作的是变量的地址,目的有两个:一个是改变传入的变量的值,一个是提高效率,减少参数传值过程中需要的复制过程。 在实际开发中

C语言中的union联合变量是什么意思

穿精又带淫゛_ 提交于 2020-02-26 03:00:46
什么是联合变量 c语言中的union 是联合体,就是一个多个变量的结构同时使用一块内存区域,区域的取值大小为该结构中长度最大的变量的值 联合的定义 定义一个联合类型的一般形式为: union 联合名 { 成员表 }; 成员表中含有若干成员,成员的一般形式为: 类型说明符 成员名 。成员名的命名应符合标识符的规定。例如: union perdata { int class; char office[10]; }; 定义了一个名为perdata的联合类型,它含有两个成员,一个为整型,成员名为class;另一个为字符数组,数组名为office。联合定义之后,即可进行联合变量说明,被说明为perdata类型的变量,可以存放整型量class或存放字符数组office。 联合变量的说明 联合变量的说明和结构变量的说明方式相同, 也有三种形式。即 A.先定义,再说明; B.定义同时说明; C.直接说明 以perdata类型为例,说明如下: union perdata { int class; char office[10]; }; union perdata a,b; 或者可同时说明为: union perdata { int class; char office[10]; }a,b; 或直接说明为: Union { int class; char office[10]; }a,b ;

虚拟机安装&Linux初探

为君一笑 提交于 2020-02-26 02:55:15
学习基于VirtualBox虚拟机安装Ubuntu图文教程在自己笔记本上安装Linux操作系统 安装虚拟机的过程还算顺利。除了在安装增强设备功能时需要将之前的硬盘弹出之外,没有遇到其他的问题。 通过实践学习别出心裁的Linux命令学习法,掌握Linux命令的学习方法 通过老师推荐,在实验楼学习了 Linux基础入门 ,目前课程暂时只学到了第4节。现主要分享3、4节学习感受。 第3节 用户及文件权限管理 该章节分为两个部分:1.Linux 中创建、删除用户,及用户组等操作。 2.Linux 中的文件权限设置。主要是通过打开终端,输入Linux命令来进行对用户和文件的有效操作。 主要使用到的命令有: 查看用户 $ who am i 或 $ who mom likes 创建用户 $ sudo adduser 用户组 1.groups命令 $ groups 2.查看/etc/group文件 $ cat /etc/group | sort 删除用户 $ sudo deluser 查看文件权限 $ ls -l 补充: who 命令其它常用参数 参数 说明 -a 打印能打印的全部 -d 打印死掉的进程 -m 同 am i , mom likes -q 打印当前登录用户数及用户名 -u 打印当前登录用户登录信息 -r 打印运行等级 创建用户时应注意: 命令 说明 $ su <user>

信息安全系统设计第一周实验报告

纵饮孤独 提交于 2020-02-26 02:53:36
一、学习目标 1. 能够独立安装Linux操作系统 2. 能够熟练使用Linux系统的基本命令 3. 熟练使用Linux中用户管理命令/系统相关命令/文件目录相关命令/打包压缩相关命令/比较合并相关命令/网络相关命令等 二、如何学习Linux 三、Linux终端 1.Terminal(终端) 通常在我们使用 Linux 时,我们并不是直接与系统打交道,而是通过一个叫做 Shell 的中间程序来完成的,在图形界面下为了实现让我们在一个窗口中完成接受用户输入和显示输出,Linux 系统还提供了一个叫做终端模拟器的程序(Terminal),下面几个比较常见的终端模拟器,例如 gnome-terminal,kconsole,xterm,rxvt,kvt,nxterm 和 eterm,目前我们的实验中的终端程序是 xfce 桌面环境自带的 xfce-terminal。不过要注意的是这里所说的终端(Terminal)和控制台(Console)是有区别的。 2.Shell 通常在图形界面中对实际体验带来差异的不是上述的不同发行版的各种终端模拟器,而大都是这个 Shell(壳),有壳就有核,这里的核就是指的 UNIX/Linux 内核 3.命令行操作体验 快捷键:(1)使用Tab键来进行命令补全,当忘记某个命令的全称时可以只输入它的开头的一部分然后按下Tab键就可以得到提示或者帮助完成 (2)

按引用传递与按值传递有什么区别?

无人久伴 提交于 2020-02-26 02:52:54
之间有什么区别 通过引用传递的参数 通过值传递参数? 请给我一些例子。 #1楼 按值传递是指如何通过使用参数将值传递给函数。 在按值传递时,我们复制存储在指定变量中的数据,并且比通过引用传递数据要慢。 我们对复制的数据进行更改,原始数据不受影响。 通过引用或地址传递,我们将直接链接发送到变量本身。 或将指针传递给变量。 它更快,花费更少的时间 #2楼 简而言之,按值传递是什么,按引用传递是在哪里。 如果您的值为VAR1 =“ Happy Guy!”,则只会看到“ Happy Guy!”。 如果VAR1更改为“ Happy Gal!”,您将不会知道。 如果通过引用传递了它,并且VAR1发生了变化,那么您将。 #3楼 最简单的方法是在Excel文件中。 举例来说,假设您在单元格A1和B1中有两个数字5和2,而您想在第三个单元格中找到它们的总和,例如A2。 您可以通过两种方式执行此操作。 通过在此单元格中键入 = 5 + 2 将其值传递到单元格A2中 。 在这种情况下,如果单元格A1或B1的值发生变化,则A2中的总和保持不变。 或者通过键入 = A1 + B1 将单元格A1和B1的“引用”传递到单元格A2 。 在这种情况下,如果单元格A1或B1的值更改,则A2中的总和也更改。 #4楼 这是一个示例,演示 按值传递-指针值-引用 之间的区别: void swap_by_value(int

信息安全系统设计基础第一周学习总结——20135308

雨燕双飞 提交于 2020-02-26 02:51:59
本周,我学习了Linux的历史与一些著名的开发者。 操作系统始于二十世纪 50 年代,当时有一个项目叫做" Multics ",它的技术在当时很创新,然而它的开发过程并不顺利,当时参加该项目的一个开发团体-贝尔实验室退出了这个项目后开发了他们自己的一个操作系统—— UNIX。 UNIX 最初免费发布并因此在大学里受到欢迎,但是后来变得商业化,价格高昂,使用的人很少。1991 年 10 月,Linus Torvalds在赫尔辛基大学接触 UNIX ,他希望能在自己的电脑上运行一个类似的操作系统。很快他就开始了自己的开发工作,他第一次发行的版本很快吸引了一些黑客,他们的加入使它很快就具有了许多吸引人的特性。他经常改写内核,使有些程序能更容易在 Linux 上运行,包括 C 编译器,都来自于自由软件基金 GNU 项目。 1992-1993 年,Linux 内核具备了挑战 UNIX 的所有本质特性,包括 TCP/IP 网络,图形界面系统(X window),Linux 同样也吸引了许多行业的关注。一些小的公司开发和发行Linux,有几十个 Linux 用户社区成立。1994 年,Linux 杂志也开始发行。 与Windows相比,Linux是免费的,平台更加安全,大都为开源自由软件,用户可以修改定制和再发布,但是部分软件质量和体验欠缺,但是可以定制,更具自由行,可学习性。

什么是js-xiaoxu

大憨熊 提交于 2020-02-26 02:50:08
JavaScript基础语法 HTML :标记语言 JavaScript :编程语言 序言 JavaScript发展历史(JS) JavaScript是什么 JavaScript能干什么 1994年,网景公司(Netscape)发布了Navigator浏览器0.9版,这是世界上第一款比较成熟的网络浏览器,轰动一 时。但是这是一款名副其实的浏览器–只能浏览页面,浏览器无法与用户互动,当时解决这个问题有两个办法,一个是采 用现有的语言,许它们直接嵌入网页。另一个是发明一种全新的语言。 liveScript ==> javaScript ==> ECMAscript 2. 1995年Sun公司将Oak语言改名为Java,正式向市场推出。Sun公司大肆宣传,许诺这种语言可以"一次编写,到处运 行"(Write Once, Run Anywhere),它看上去很可能成为未来的主宰。 3. 网景公司动了心,决定与Sun公司结成联盟 4. 34岁的系统程序员Brendan Eich登场了。1995年4月,网景公司录用了他,他只用10天时间就把Javascript设计出 来了。(多肽语言) 5. (1)借鉴C语言的基本语法; (2)借鉴Java语言的数据类型和内存管理; (3)借鉴Scheme语言,将函数提升到"第一等 公民"(first class)的地位; (4)借鉴Self语言,使用基于原型

ref和out的使用与区别

让人想犯罪 __ 提交于 2020-02-26 02:25:32
区别: ref和out的区别在C# 中,既可以通过值也可以通过引用传递参数。通过引用传递参数允许函数成员更改参数的值,并保持该更改。若要通过引用传递参数, 可使用ref或out关键字。ref和out这两个关键字都能够提供相似的功效,其作用也很像C中的指针变量。它们的区别是: 1、使用ref型参数时,传入的参数必须先被初始化。对out而言,必须在方法中对其完成初始化。 2、使用ref和out时,在方法的参数和执行方法时,都要加Ref或Out关键字。以满足匹配。 3、out适合用在需要retrun多个返回值的地方,而ref则用在需要被调用的方法修改调用者的引用的时候。 out 方法参数上的 out 方法参数关键字使方法引用传递到方法的同一个变量。当控制传递回调用方法时,在方法中对参数所做的任何更改都将反映在该变量中。 当希望方法返回多个值时,声明 out 方法非常有用。使用 out 参数的方法仍然可以返回一个值。一个方法可以有一个以上的 out 参数。 若要使用 out 参数,必须将参数作为 out 参数显式传递到方法。out 参数的值不会传递到 out 参数。 不必初始化作为 out 参数传递的变量。然而,必须在方法返回之前为 out 参数赋值。 属性不是变量,不能作为 out 参数传递。 网上这么说:ref是 有进有出,而out是 只出不进。 来源: https://www

register变量

♀尐吖头ヾ 提交于 2020-02-26 02:02:35
Register修饰符暗示编译程序相应的变量将将被频繁使用,如果可能的话,应将其保存在CPU的寄存器中,以指加快其存取速度。但是,使用register修饰符有几点限制。 首先,register变量必须是能被CPU寄存器所接受的类型,这通常意味着register变量必须是一个单个的值,并且其长度应小於或等於整型的长度。但是,有些机器的寄存器也能存放浮点数。 其次,因为register变量可能不存放在内存中,所以不能用取址符运算符“ & ”来获取取址符运算符“ &” register变量的地址。如果你试图这样做,编译程序就会报告这是一个错误。 register变量修饰符的用处有多大还受其它一些规则的影响。因为寄存器的数量是有限的,而且某些寄存器只能接受特定类型的数据(如指针和浮点数),因此,真正能起作用的register修饰符的数目和类型都依赖於运行程序的机器,而任何多余的register修饰符都将被编译程序所忽略。 那麽,甚麽时候使用register变量修饰符呢?回答是,对现有的大多数编译程序来说,永远不要使用register变量修饰符。早期的C编译程序不会把变量保存在寄存器中,除非你命令它这样做,这时register变量修饰符是C语言的一种很有价值的补充。然而,随着编译程序设计技术的进步,在决定哪些变量应该被存到寄存器中时,现在的C编译程序能必程序员作出更好的决定。实际上