js局部变量与全局变量

在最外层定义的是全局变量

如果在函数内部不用var声明直接赋值的变量,那么这个变量也是全局变量

在函数内部用var声明的变量叫做局部变量

定义在最开头的全局变量在整个js范围内都可以访问到,都可以使用,定义在不定位置的全局变量,只能在定义变量的后边使用这个变量,如果一个变量定义在函数中,而且用var声明,则它属于局部变量,只在方法体内有效,参数也是局部变量,在方法体外,不能够访问到,如果在方法体内直接对变量进行赋值,不用var声明,则属于全局变量,但只有在该函数执行后才能在外部访问到,如果没有执行这个函数,这个变量照样访问不到

一个函数的返回值可以作为另一个函数的参数,这样使用的方式是回调函数


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

<script>

window.onload=function(){

    var y=1;//属于全局变量

    function show(x){

        var num=2;

        sum=3;

        return num*x;

    }

    //show();

    //alert(num);出现错误,num的作用域仅限于方法体内

    //alert(x);出现错误,参数a的作用与仅限于方法体内

    alert(sum);//弹出sum的值,方法体内不用var声明的变量,不仅仅作用于方法体内,相当于全局变量(注意,只有在方法运行后才能访问到,否则会提示sum is not defined)

    function fun(){

        return 5;

    }

    alert(show(fun()));//这属于回调函数,回调函数是将一个函数的返回值直接作为另一个函数的参数进行计算的方式

}

</script>

时间: 2024-10-07 10:27:09

js局部变量与全局变量的相关文章

JS局部变量和全局变量·你不知道的事

JS通过函数管理作用域.在函数内部声明的变量只在这个函数内部,函数外面不可用.全局变量则是在任何函数外面声明的或者未声明直接简单使用的. 为避免变量的冲突和覆盖,应尽量少的使用全局变量. 但有时会不自觉的创建出全局变量.首先,你可以不需要声明就可以使用变量:第二,js有隐含的全局概念,意味着你不声明的任何变量都会成为一个全局对象属性. 此段代码中的result没有声明,但是代码照样运行正常,但在调用函数后你会多一个全局命名空间.所以最好是始终使用var声明变量.下面教大家怎么看变量是全局变量还是

JS高级---把局部变量变成全局变量

如何把局部变量变成全局变量? 把局部变量给window就可以了 函数的自调用---自调用函数 一次性的函数--声明的同时, 直接调用了 (function () { console.log("函数"); })(); 局部变量 页面加载后.这个自调用函数的代码就执行完了 (function (形参) { var num = 10;//局部变量 })(实参); console.log(num); 把局部变量给window, 则局部变量变成全局变量 (function (win) { var

javascript 关于局部变量和全局变量

js中函数执行过程不只是单纯的局部变量覆盖全局变量,和函数里面的声明情况有关.比如: <script> var a =1; function test(){ alert(a); //a为undefined! 这个a并不是全局变量,这是因为在function scope里已经声明了(函数体倒数第4行)一个重名的局部变量, //所以全局变量a被覆盖了,这说明了Javascript在执行前会对整个脚本文件的定义部分做完整分析,所以在函数test()执行前, //函数体中的变量a就被指向内部的局部变量

JS中声明全局变量

JS中声明全局变量主要分为显式声明或者隐式声明下面分别介绍. 声明方式一: 使用var(关键字)+变量名(标识符)的方式在function外部声明,即为全局变量,否则在function声明的是局部变量.该方式即为显式声明详细如下: 复制代码代码如下: var test = 5;  //全局变量function a(){  var cc=3; //局部变量  alert(test);}function b(){alert(test);} 声明方式二: 没有使用var,直接给标识符test赋值,这样

[Sass]局部变量和全局变量

[Sass]局部变量和全局变量 Sass 中变量的作用域在过去几年已经发生了一些改变.直到最近,规则集和其他范围内声明变量的作用域才默认为本地.如果已经存在同名的全局变量,从 3.4 版本开始,Sass 已经可以正确处理作用域的概念,并通过创建一个新的局部变量来代替. 全局变量与局部变量 先来看一下代码例子: //SCSS $color: orange !default;//定义全局变量(在选择器.函数.混合宏...的外面定义的变量为全局变量) .block { color: $color;//

C++局部变量、全局变量、静态变量(堆、栈、静态存储区)

1 static关键字 1.1 隐藏 eg: //a.c文件中 char a = 'A'; void msg() { printf("Hello\n"); } //main.c文件中 extern char a; printf("%c",a); 输出结果:A Hello 所有未加static前缀的全局变量和函数都具有全局可见性,其它的源文件也能访问.a是全局变量,msg是函数,并且都没有加static前缀,因此对于另外的源文件main.c是可见的. 如果加了stat

局部变量与全局变量在声明时的注意事项

/* ============================================================================ Name : TestVariable.c Author : lf Version : Copyright : Your copyright notice Description : 局部变量与全局变量在声明时的注意事项 全局变量只能要常量赋值,但是局部变量可用常量和表达式以及函数赋值. 这是为什么呢? 程序在开始执行时需要用适当的值来初

javascript中局部变量和全局变量的区别详解

javascript有两种变量:局部变量和全局变量.当然,我们这篇文章是帮助大家真正的区别这两种变量. 首先,局部变量是指只能在本变量声明的函数内部调用.全局变量时整个代码中都可以调用的变量.当然,单单从字面上理解肯定是不清楚的,下面我详细的介绍下: 大家都知道,变量是需要用var关键字声明的.但是javascript中也可以隐式的使用变量,就是不用声明,直接使用.而且,千万注意,javascript把隐式声明的变量总是当成全局变量来使用的. 例如: 代码如下: function myName(

使用Lua 局部变量来优化性能,同时比较局部变量和全局变量

在竞争激烈的游戏行业中,尤其页游,面对策划复杂和频繁的需求,使用脚本可以降低难度和成本.在使用Lua的过程中,会经常访问全局变量来作为配置文件. 在访问全局变量时,可以通过局部变量引用全局变量来优化.当然,这样的优化毫无意义. Locals Vs Globals  from  http://lua-users.org/wiki/LocalsVsGlobals Comparison between local and global variables: Implementation: Locals