js学习笔记(二)关于函数的 全局变量 和 局部变量 示例

全局变量(示例)

<script>
function square(num)              /*传递参数*/
{
    total = num * num;            /*定义全局变量*/
    return total;                 /*返回数值total*/
}
var total = 50;                   /*定义全局变量total*/
var number  = square(20);         /*引用square(参数)赋值给number*/
alert(total);
alert(number);
</script>

如果没有使用 var,变量就将被视为一个全局变量,如果脚本里已经存在一个与之同名的全局变量,这个函数就会改变那个全局变量的值。

square函数中 total没有做var声明,所以是一个全局变量。square函数外同样有一个已经声明了的total变量。由于使用var(关键字)+变量名(标识符)的方式在function外部声明,即为全局变量。(全局变量声明方法之一)

由于脚本中已经存在了一个全局变量。square函数中的total(num*num赋值给total;num等于number引用square(参数)参数是20。所以是400)值将改变外部全局变量的值!

局部变量(示例)

<script type="text/javascript">
function square(num)
{
    var total = num * num;  /*乘法运算赋值给局部变量total*/
    return total;       /*返回值给total*/
}
var total = 50;         /*全局变量total等于50*/
var number     = square(20);/*引用square(参数)给number*/
alert(total);
alert(number);
</script>

square函数中的total声明了局部变量。函数外部虽然也声明了的total变量。但是它们是两个完全不同的变量。一个是局部变量;一个是全局变量。这就好像是同一个人有相同的名字,但是本质上他们是完全不同的两个人!

由于square函数内部引用了外部全局变量total。所以输出值是50!number输出是400.因为全局变量number引用了square(参数)并且赋值给number。所以square函数内部的 num*num乘法运算是赋值给number的。

时间: 2024-11-10 08:00:02

js学习笔记(二)关于函数的 全局变量 和 局部变量 示例的相关文章

linux shell学习笔记二---自定义函数(定义、返回值、变量作用域)介绍

linux shell 可以用户定义函数,然后在shell脚本中可以随便调用.下面说说它的定义方法,以及调用需要注意那些事项. 一.定义shell函数(define function) 语法: [ function ] funname [()] { action; [return int;] } 说明: 1.可以带function fun() 定义,也可以直接fun() 定义,不带任何参数. 2.参数返回,可以显示加:return 返回,如果不加,将以最后一条命令运行结果,作为返回值. retu

[转]node.js学习笔记(二)

二.express 1.安装 express4 npm --registry=http://registry.npmjs.org install -g express-generator (全局) 2.新建express项目 express -t ejs newsproject cd newsproject npm --registry=http://registry.npmjs.org install 3.启动项目 A 修改app.js增加 其中,通过app.use('/',routes)访问

【转】require.js学习笔记(二)

require.js遵循AMD规范,通过define定义模块,require异步加载模块,一个js文件即一个模块. 一.模块加载require1.加载符合AMD规范模块 HTML: <script src="js/require.js" data-main="js/main"></script> MAIN.JS require.config({ baseUrl: "js/lib", paths: { "jquer

node.js学习笔记之调用函数

本文件和从其它模块引入函数: 从其他模块引入分只支持引入一个函数和多个  这两种 例: test.js为主函数 var http=require('http'); http.createServer(function (request,response){ response.writeHead(200,{'Content-Type':'text/html'}) func1(response);//调用内部 otherfun.func3(response);//调用外部函数 console.log

(转)js学习笔记()函数

1.调用函数时,如果参数多于定义时的个数,则多余的参数将会被忽略,如果少于定义时的个数则缺失的参数数会被自动赋予undefined值. 2.如果是用function语句声明的函数定义则不可以出现在循环或条件语句中,但是如果是用函数直接量方法的函数定义则可以出现在任何js表达式中. 3.arguments对象 函数的arguments对象就像一个数组,里面保存着函数调用时的实际参数,可以用arguments[0].arguments[1].arguments[2]…等来引用这些参数,即使这些参数在

vue.js学习笔记(二):如何加载本地json文件

在项目开发的过程中,因为无法和后台的数据做交互,所以我们可以自建一个假数据文件(如data.json)到项目文件夹中,这样我们就可以模仿后台的数据进行开发.但是,如何在一个vue.js 项目中引入本地的json文件呢,下面就将步骤贴出来.(此时项目是由webpack打包而成). 整个项目是由webpack打包而成,具体步骤上网查找.具体项目结构如下: 1:我们找到bulid>dev-server.js,然后打开 2:在里面加入这段代码. var app = express() var appDa

node.js学习笔记二之版本问题

一.版本说明 进入node.js官网https://nodejs.org/en/download/ 点击上面的[All download options]进入到所有下载列表的地址 下载地址:https://nodejs.org/dist/ 0.是Joyent公司维护.进展缓慢.但是稳定. 4.,5.*都是由网友维护的.相对的进展快,增加和许多新功能. 偶数开头的是稳定版,奇数开头的开发版就是会不断变化更新.为下一个稳定版本做测试差不多的意思. 不过现在都是在nodejs基金会下面.所以咱们在no

C#学习笔记二(函数高级参数)

int[] b = { 1, 2, 3, 4, 5 }; int max; int min; int sum; int avg; OutTest(b,out max,out min,out sum,out avg); Console.WriteLine("最大:{0},最小:{1},总和:{2},平均:{3}",max,min,sum,avg); Console.ReadKey(); /// <summary> /// 用来返回多个参数的测试函数,使用OUT参数 /// &

【转】Backbone.js学习笔记(二)细说MVC

文章转自: http://segmentfault.com/a/1190000002666658 对于初学backbone.js的同学可以先参考我这篇文章:Backbone.js学习笔记(一) Backbone源码结构 1: (function() { 2: Backbone.Events // 自定义事件 3: Backbone.Model // 模型构造函数和原型扩展 4: Backbone.Collection // 集合构造函数和原型扩展 5: Backbone.Router // 路由