局部变量和js 全局变量 局部变量的区别,怎么实现

javascript中局部变量和全局变量的区别详解
投稿:hebedich
字体:[ ] 类型:转载 时间:
本文主要是向大家详细的对比分析了javascript中局部变量和全局变量的区别,是篇非常不错的文章,值得仔细去品读,推荐给小伙伴们。
javascript有两种变量:局部变量和全局变量。当然,我们这篇文章是帮助大家真正的区别这两种变量。
首先,局部变量是指只能在本变量声明的函数内部调用。全局变量时整个代码中都可以调用的变量。当然,单单从字面上理解肯定是不清楚的,下面我详细的介绍下:
大家都知道,变量是需要用var关键字声明的。但是javascript中也可以隐式的使用变量,就是不用声明,直接使用。而且,千万注意,javascript把隐式声明的变量总是当成全局变量来使用的。
function myName() {
&i = 'yuanjianhang';
function sayName() {
&alert(i);
sayName();
输出结果为:yuanjianhang
这说明变量i就是一个全局的变量,如果把上面的代码改成如下:
function myName() {
&var i='yuanjianhang';
function sayName() {
&alert(i);
sayName();
此时,游览器将没有任何输出结果,因为i 是在函数myName中定义的,所以它只是myName的局部变量,不可能被外部调用。
现在再回过头来看下面的代码:
function myName() {
&i = 'yuanjianhang';
function sayName() {
&alert(i);
sayName();
现在,我们进行一下改动,把myName();去掉,代码如下:
function myName() {
&i = 'yuanjianhang';
function sayName() {
&alert(i);
sayName();
&此时,游览器也不会有如何反应。因为虽然i是全局变量,但是函数myName()并没有被调用,所以就相当于虽然声明了i,但是并没有给i赋予任何的值,所以没有任何输出。
同理,如果把上例改成:
function myName() {
&i = 'yuanjianhang';
function sayName() {
&alert(i);
sayName();
这种情况下还是不会输出任何结果,javascript代码的执行时从上到下的,在sayName()函数被调用时会检查变量i的值,此时函数myName尚未执行,也就是说i还没有被赋值,所以不会输出任何结果。
为了方便大家更好的理解,这里再举一个例子:
var i = 'yuanjianhang';
function myloveName() {
&i = 'guanxi';
myloveName();
function myName() {
&alert(i);
这次的结果是什么呢?
答案是guanxi
首先,i的原始值是yuanjianhang,但是当调用myloveName()函数之后,将i的值改为guanxi,所以最后的输出结果是guanxi。
如果将代码改为:
var i = 'yuanjianhang';
function myloveName() {
&var i = 'guanxi';
myloveName();
function myName() {
&alert(i);
此时的结果就是yuanjianhang了,因为代码中的两个i不一样,一个是全局的,一个是局部的,也可以这样理解,虽然两个i的名字一样,但是这两个i的本质却不一样,好像有两个名字一样的人一样,虽然名字一样,但却不是同一个人。
如果将代码改造成这样:
var i = 'yuanjianhang';
function myloveName() {
&i = 'guanxi';
function myName() {
&alert(i);
myloveName();
相信大家可以自己算出结果了,结果是yuanjianhang。
既然函数内部可以调用全局变量,那么下面这种情况呢:
var i = 'yuanjianhang';
function myloveName() {
& i = 'guanxi';
&alert(i);
myloveName();
此时变量的值是哪个呢?
我们来分析下:
首先全局变量i被赋值为:yuanjianhang。
接下来myloveName()函数被调用,全局变量i被重新赋予新的值:guanxi
所以结果肯定是:guanxi。
如果我们把alert提前呢,像这样:
var i = 'yuanjianhang';
function myloveName() {
& alert(i);
&i = 'guanxi';
myloveName();
这时候结果是什么呢?
经过验证结果是:undefined
如果代码是这样呢:
var i = 'yuanjianhang';
function myloveName() {
& alert(i);
myloveName();
此时i的结果是:yuanjianhang
为什么会发生上面undefined情况,因为代码的执行顺序是从上到下的,在输出i之前并没有对i定义。所以从这里可以看出,使用代码的时候,变量的声明一定要放到代码的前面,以避免出现类似的问题!
var i = 'yuanjianhang';
function myloveName() {
&alert(i);
&var i = 'guanxi';
myloveName();
这种情况下也会输出:undefined
好了,关于变量我只有这么多的介绍了,相信这些任何人都可以看明白。不管代码如何复制,其核心是不会变的。
以上就是本文的全部内容了,小伙伴们对于javascript中局部变量和全局变量的区别是否有了更深刻的认识了呢,祝大家新年快乐~学习愉快。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具LabVIEW局部变量与全局变量,最全面的LabVIEW局部变量与全局变量文章 - 电子工程世界网
LabVIEW局部变量与全局变量
在电子工程世界为您找到如下关于“LabVIEW局部变量与全局变量”的新闻
LabVIEW局部变量与全局变量资料下载
4.2.2布尔控件的机械动作56 4.2.3布尔型对象的操作58 4.3字符串对象60 4.3.1创建字符串对象60 4.3.2字符串对象的属性设置61 4.3.3字符串对象的操作62 4.4其他数据类型66 4.4.1循环选择型和列举型66 4.4.2I/O端口型67 4.5局部变量与全局变量67 4.5.1局部变量68 4.5.2全局变量68 4.5.3慎用局部和全局变量69 &第...
7.4.1 FFT变换
7.4.2 窗函数
7.4.3 频谱分析
7.4.4 数字滤波
7.4.5 曲线拟合
第八章 labview程序设计技巧
8.1 局部变量和全局变量
8.2 属性节点
8.3 VI选项设置
第九章 测量专题
9.1 概述...
数据采集卡简介第七章&& 信号分析与处理7.1 概述&& 7.2 信号的产生7.3 标准频率7.4 数字信号处理7.4.1 FFT变换7.4.2 窗函数7.4.3 频谱分析7.4.4 数字滤波7.4.5 曲线拟合第八章&&& labview程序设计技巧8.1&&& 局部变量和全局变量&nbsp...
局部变量与全局变量 LabVIEW 是以数据流决定程序框图元素的执行顺序,但在某些程序框图中需要消除数据流的依赖性,这时可以考虑使用变量。LabVIEW 中的变量是程序框图中的元素,通过它可以在另一位置访问或存储数据。根据不同的变量类型,数据的实际位置也不一样。局部变量将数据存储在前面板的输入控件和显示控件中。全局变量将数据存储在特殊的通过多个VI可以访问的仓库中。不管变量将数据存储在何处,所有...
LabVIEW 是以数据流决定程序框图元素的执行顺序,但在某些程序框图中需要消除数据流的依赖性,这时可以考虑使用变量。LabVIEW 中的变量是程序框图中的元素,通过它可以在另一位置访问或存储数据。根据不同的变量类型,数据的实际位置也不一样。局部变量将数据存储在前面板的输入控件和显示控件中。全局变量将数据存储在特殊的通过多个VI可以访问的仓库中。不管变量将数据存储在何处,所有的变量都可以在不...
Labview中学者常见问题及解答:1、如何用LV 与可编程仪器通信,该仪器没有GPIB 接口,但有COM 口,能否用LV 操作?A:可以通过LV 的串口通信来解决仪器控制问题,参看FIND EXAMPLE 的BASIC 2 PORTSERIAL WRITE AND READ.VI2、如何将EVENTSTRUCT 中捕获的时间传递到STATE DIAGRAM?A:使用VENTSTRUCT 捕获...
LabVIEW局部变量与全局变量相关帖子
://.cn/detail/tiankai001/8643
我和Lab VIEW--一个NI工程师的十年编程经验 第0章 什么是LabVIEW
0.1 LabVIEW与文本编程语言的区别
0.3 LabVIEW的应用领域
0.4 LabVIEW的发展历史
第1章 LabVIEW入门
1.1 &Hello,World!&程序...
、增加中级程序&
感谢大家的支持,谢谢。
[ 本帖最后由 wyb4993 于
11:28 编辑 ] 不错....不错 日用户手册更新,发布V3.6版本,总页数为302:
1、增加“STM32中断优先级”章节
2、增加“LabVIEW中的事件结构”章节
3、增加“STM32、LabVIEW中的局部变量和全局变量”章节
3.3对应前面板的后台程序如下(图形化语言):
该框图充分利用了循环、顺序和条件等程序控制的结构框架,灵活处理了各模块间的连接,另外,全局变量及局部变量的运用也使前面板简洁了许多。框图中为XY波形记录建立的缓存Chart history size采用SubVI的形式也充分体现了LABVIEW的模块化编程思想。
启动测试后,有效数据显示在XY波形图上,若对测试效果满意,按下STOP...
怎么返回的就ok了
假如想更深入的了解的话 就弄明白局部变量放在什么地方 全局变量放在什么地方 堆和栈的区别
在一个C语言中 数据段是怎么安排的
个人觉得还是从基础上分析问题比较稳妥点
先把原理弄懂来
个人意见 [quote]to yewuyi:
请勿轻言无知,如果你知道编译器的设计必须遵循ansi c 的规范的话,这句话你会咽回去的。
这点是编译原理的常识。
我贴出来...
LabVIEW局部变量与全局变量视频
你可能感兴趣的标签
热门资源推荐}

我要回帖

更多关于 全局变量与局部变量 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信